Как изменить часовой пояс пользователя?


11

Я знаю, что (например, в Debian) можно использовать dpkg-reconfigure tzdataдля изменения часового пояса системы, но мне интересно, как можно изменить часовой пояс пользователя (если Linux / Unix вообще поддерживает такую ​​идею).

Обычно я работаю на сервере удаленно через ssh и, учитывая, что сервер работает с UTC внутри (файлы, ...) и часовые пояса довольно поверхностны, я хотел бы видеть время в желаемом часовом поясе в зависимости от того, откуда я подключаюсь. Это возможно?


Что ты пробовал? Вы вообще искали "ssh с передачей информации TZ" в Интернете?
Anthon

Ответы:


13

Используйте TZпеременную окружения. Например:

bash$ export TZ=US/Pacific
bash$ date
Mon Mar  3 00:31:17 PST 2014
bash$ export TZ=US/Eastern
bash$ date
Mon Mar  3 03:33:06 EST 2014

Возможные значения для TZнаходятся в каталоге /usr/share/zoneinfo(см., Например, существование /usr/share/zoneinfo/US/Pacific)


В моем случае, dateдает другое время-zose и время, чем uname -a. С чего бы это?
Geremia

8

Во-первых, вам нужны некоторые конфиги для ssh-сервера и ssh-клиента.

В Server, /etc/ssh/sshd_configубедитесь, что вы принимаете TZпеременную:

AcceptEnv LANG LC_* TZ

В Client, в /etc/ssh/ssh_configили ~/.ssh/configубедитесь, что вы отправляете TZпеременную:

SendEnv TZ

(По умолчанию обычно ничего не отправляется с клиента и не принимается на сервере.)

Затем создайте псевдоним для sshкоманды, чтобы использовать ваш текущий TZв sshсессии. Добавьте эту строку в .bashrcфайл:

alias ssh='TZ=${TZ:-"$(cat /etc/timezone)"} ssh'

или использовать это для системы не имеет /etc/timezone:

alias ssh='TZ=${TZ:-"$(date +%Z)"} ssh'

Затем каждый раз, когда вы sshподключаетесь к удаленному серверу, время на сервере будет отображаться в зависимости от вашего местного часового пояса.


Вы также можете использовать TZ=$(date +%Z)с большинством версий (Linux / * BSD / Solaris) на сегодняшний день, это будет работать лучше на системах, где /etc/timezoneэто еще не сделано.
Мистер Спуратик

Дружеское напоминание. Не забудьте перезапустить sshd, чтобы изменения вступили в силу. На Ubuntu "служба SSH перезапустить"
кавалькада
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.