As configurações da variável de ambiente Locale não entram em vigor [closed]

7

Eu tenho um VPS do Debian 6 (64 bits) onde não consigo obter as variáveis de ambiente de localidade LANG e LC_ * definidas. (Tudo abaixo como root).

vps:~# locale -a
C
POSIX
en_US.utf8
nl_NL.utf8

vps:~# locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

vps:~# cat /etc/default/locale
#  File generated by update-locale
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_COLLATE=POSIX

Isso deve substituir as configurações de localidade fornecidas por meio do meu cliente SSH, mas as configurações padrão de localidade não surtem efeito.

.profile, .bashrc, / etc / environment e / etc / profile não contêm nenhuma configuração de localidade. Eu também não encontrei nenhum outro local de onde essas variáveis de ambiente são originadas.

me:~# grep "LANG" ~/.profile ~/.bashrc /etc/environment /etc/profile
me:~# grep "LC_" ~/.profile ~/.bashrc /etc/environment /etc/profile
me:~#

As configurações do meu cliente SSH também não estão em vigor, enquanto elas acontecem em outros VPSs. Localmente, eu tenho em meu / etc / ssh / ssh_config:

SendEnv LANG LC_*

E no VPS, o / etc / ssh / sshd_config contém:

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Não tenho certeza se é necessário que as variáveis entrem em vigor, mas o /etc/pam.d/login do meu VPS contém:

# locale variables are also kept into /etc/default/locale in etch
# reading this file *in addition to /etc/environment* does not hurt
session       required   pam_env.so readenv=1 envfile=/etc/default/locale

E /etc/pam.d/sshd contém:

# Read environment variables from /etc/environment and
# /etc/security/pam_env.conf.
auth       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.
auth       required     pam_env.so envfile=/etc/default/locale

(meu /etc/security/pam_env.conf contém apenas opções comentadas)

Então, parece que algo não está permitindo que minhas configurações de localidade / etc / default / locale ou do cliente SSH entrem em vigor, portanto, o padrão é POSIX (ou algo está forçando o POSIX explicitamente). Alguma pista do que poderia estar interferindo? Ou ideias para descobrir o que é isso?

Eu posso fazer export LC_CTYPE=en_US.UTF-8 etc. no meu .bashrc, e isso funciona. No entanto, estou tentando entender esse comportamento, que é diferente daquele em outras instalações do Debian (6 ou 7) com as quais estou trabalhando.

Editar: mais alguns detalhes:

  • reinicializei o sistema, sem efeito;
  • / etc / ssh / sshd_config tem UsePAM yes ;
  • Eu também tentei usar en_US.utf8 como nome alternativo em /etc/default/locale .
por arjan 14.09.2014 / 17:41

1 resposta

0

Você deve verificar se [PermitUserEnvironment] no seu arquivo de configuração sshd está definido como yes também. Eu não sei qual é o padrão.

    
por 20.10.2015 / 22:14