Por que o / etc / default / locale não é originado no login via ssh?

4

Eu não sou um novato, mas tenho lutado por esse assunto aparentemente fácil por um tempo. Eu sei como contorná-lo usando /etc/environment ou outros truques, mas eu quero que as vars em /etc/default/locale funcionem ... elas simplesmente não são originadas

Usando o Ubuntu 14.04.4. O conteúdo atual de /etc/default/locale é:

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

Eu sei que posso colocá-los em /etc/environment ou /etc/profile etc. Triggering dpkg-reconfigure locales , locale-gen , locale-update tem efeito zero. Eu sei de todos eles.

Algo que deve originar /etc/default/locale não é fazer o sourcing. Eu não consigo descobrir o que. Eu reiniciei também.

Isto é quando eu ssh na máquina.

    
por Normadize 23.03.2016 / 20:22

2 respostas

1

... e minutos depois eu descobri ... PAM sangrento!

Rastreou-se observando todos os arquivos / etc fornecendo / etc / default / locale e o PAM apareceu. Ele o origina em /etc/pam.d/sshd .

Depois lembrei-me de que só recentemente desabilitei o PAM em /etc/ssh/sshd_config comentando a linha #UsePAM yes quando queria prender usuários do sftp via chroot'ing.

Solução: Reabilite o PAM em sshd_config, ou fonte / etc / default / locale em / etc / environment, / etc / profile ou ~ / .profile

Os Mods podem eliminar a pergunta e esta resposta, se assim o desejarem. Vou deixá-los no caso de outros caírem na mesma rachadura.

No entanto,

Este não deveria realmente ser um bug que vale a pena ser reportado aos desenvolvedores do Ubuntu? As configurações de localidade não devem ser configuradas em todos os logins, independentemente de o PAM ser usado ou não?

    
por Normadize 23.03.2016 / 20:32
0

Leia man ssh , que diz (em parte), na seção 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).  

E, na seção FILES , consulte:

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

e

 ~/.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.

e

 /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.
    
por waltinator 23.03.2016 / 20:33

Tags