Почему / etc / default / locale не получен при входе через ssh?

1110 Я не новичок, но некоторое время я боролся с этой, по-видимому, легкой проблемой. Я знаю, как обойти это, используя /etc/environment или другие приемы, но я хочу, чтобы переменные в /etc/default/locale работали ... они просто не получены

Используя Ubuntu 14.04.4. Текущее содержание /etc/default/locale:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_ALL=en_US.UTF-8

Я знаю, что могу поместить их в /etc/environment или /etc/profile и т. Д. Триггеры dpkg-reconfigure locales, locale-gen, locale-update имеют нулевой эффект. Я знаю обо всех них.

Что-то, что должно быть источником /etc/default/locale, не является источником этого. Я не могу понять, что. Я тоже перезагрузился.

Это когда я ssh в машину.

4
задан 23 March 2016 в 22:32

2 ответа

... и через несколько минут я понял это ... кровавый PAM!

Отследил его, посмотрев все источники / etc / sourcing / etc / default / locale и PAM. Источники в /etc/pam.d/sshd.

Затем я вспомнил, что только недавно отключил PAM в /etc/ssh/sshd_config, комментируя строку #UsePAM yes, когда хотел заключить в тюрьму пользователей sftp с помощью chroot'ing.

Решение: Либо повторно включите PAM в sshd_config, либо используйте источник / etc / default / locale в / etc / environment, / etc / profile или ~ / .profile

Mods можете удалить вопрос и этот ответ, если хотите. Я оставлю их на случай, если другие упадут через ту же трещину.

Однако!

Разве это не должно быть ошибкой, о которой стоит сообщать разработчикам Ubuntu? Разве настройки локали не должны быть настроены для всех входов в систему, независимо от того, используется ли PAM или нет?

0
ответ дан 23 March 2016 в 22:32

Читайте man ssh, который говорит (частично), в эти ENVIRONMENT раздел:

 Additionally, ssh reads ~/.ssh/environment, and adds lines of the format
 “VARNAME=value” to the environment if the file exists and users are
 allowed to change their environment.  For more information, see the
 PermitUserEnvironment option in sshd_config(5).  

И, в эти FILES раздел см.:

 ~/.ssh/environment
         Contains additional definitions for environment variables; see
         ENVIRONMENT, above.

и

 ~/.ssh/rc
         Commands in this file are executed by ssh when the user logs in,
         just before the user's shell (or command) is started.  See the
         sshd(8) manual page for more information.

и

 /etc/ssh/sshrc
         Commands in this file are executed by ssh when the user logs in,
         just before the user's shell (or command) is started.  See the
         sshd(8) manual page for more information.
0
ответ дан 24 March 2016 в 08:32
  • 1
    Спасибо, у меня, к сожалению, все еще есть некоторые проблемы (см. редактирование в моем сообщении). У Вас есть идея о том, что вызывает проблему? – David 25 June 2017 в 01:29

Другие вопросы по тегам:

Похожие вопросы: