No meu Kubuntu ou Debian existe um arquivo /etc/default/locale
como:
# File generated by update-locale LANG="pl_PL.UTF-8"
É mencionado em vários arquivos /etc/pam.d/*
. Este é um fragmento de /etc/pam.d/sshd
:
# Read environment variables from /etc/environment and # /etc/security/pam_env.conf. session required pam_env.so # [1] # In Debian 4.0 (etch), locale-related environment variables were moved to # /etc/default/locale, so read that as well. session required pam_env.so user_readenv=1 envfile=/etc/default/locale
Agora, em man 5 pam.conf
:
When a PAM aware privilege granting application is started, it activates its attachment to the PAM-API. This activation performs a number of tasks, the most important being the reading of the configuration file(s):
/etc/pam.conf
. Alternatively, this may be the contents of the/etc/pam.d/
directory. The presence of this directory will cause Linux-PAM to ignore/etc/pam.conf
.
Quando um usuário efetua login via SSH, sshd
se bifurca e é nesse momento que /etc/pam.d/sshd
faz seu trabalho. Consulte man 8 pam_env
, ele é responsável por definir / desativar variáveis de ambiente. Eu não tinha certeza se sshd
forks antes ou depois de aceitar variáveis de um cliente, então fiz um teste simples. Eu comentei esta única linha no meu servidor Debian:
session required pam_env.so user_readenv=1 envfile=/etc/default/locale
e o problema que você apontou foi corrigido (testado com LANG=C ssh myserver
no meu caso). Eu descomentei a linha e a questão reapareceu.