/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 в машину.
... и через несколько минут я понял это ... кровавый 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 или нет?
Читайте 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.