/etc/login.defs: ENV_PATH & ENV_SUPATH vs PATH

3

Em /etc/login.defs , para que ENV_PATH e ENV_SUPATH são usados?

De /etc/login.defs :

 # REQUIRED  The default PATH settings, for superuser and normal users.  
 #  
 # (they are minimal, add the rest in the shell startup files)  
 ENV_SUPATH   PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin  
 ENV_PATH     PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games  
  • Eles parecem usar como padrão os mesmos valores de caminho iniciais que eu tenho para PATH em /etc/profile no Debian Jessie.

  • No homem, ele diz muito brevemente o que login.defs é usado. Esta página diz um pouco mais.

PATH e ENV_PATH não parecem estar conectados ou dependentes um do outro, ou, se forem, não é óbvio para mim como um depende do outro.

Preciso atualizar meus caminhos do sistema bash em ambos os dois locais? Ou existe uma maneira de ter caminhos definidos em apenas um lugar e se referir a esse valor do caminho mestre?

Ou talvez eles sejam usados apenas como padrão no caso em que PATH esteja ausente? ... Então eles realmente não importam tanto ???

    
por Eliptical view 19.10.2016 / 01:38

1 resposta

4

Citando a página man sobre login.defs

ENV_PATH (string) If set, it will be used to define the PATH environment variable when a regular user login. The value is a colon separated list of paths (for example /bin:/usr/bin) and can be preceded by PATH=. The default value is PATH=/bin:/usr/bin.

ENV_SUPATH (string) If set, it will be used to define the PATH environment variable when the superuser login. The value is a colon separated list of paths (for example /sbin:/bin:/usr/sbin:/usr/bin) and can be preceded by PATH=. The default value is PATH=/sbin:/bin:/usr/sbin:/usr/bin.

Ambos são usados para definir inicialmente a variável PATH de super usuário regular. Meu login.defs tem o ENV_PATH, ENV_SUPATH definido para seguir

ENV_SUPATH      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin  
ENV_PATH        PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

Eu adicionei um novo usuário 'foo'

sudo useradd foo

sudo passwd foo                                                                                                     
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Quando faço o login como 'foo'

foo@naga-playground:/$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

Similarmente para 'root'

root@naga-playground:/home/pi/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

O PATH pode ser substituído pelo usuário via .bashrc, .bash_profile, .zshrc ...

Para completar a resposta | ENV_PATH é usado para definir o PATH para um usuário comum
ENV_SUPATH é usado para definir o PATH para um superusuário

    
por 19.10.2016 / 02:05