Debain (buster) su não está funcionando corretamente, comando não encontrado

0
  • Por exemplo: eu instalei o ifconfig
  • Primeiro eu me torno root com "su"
  • Agora escrevo "ifconfig" e obtenho: "comando não encontrado".
  • Eu escrevo "sudo ifconfig" e agora funciona.

Isso parece acontecer com muitos programas (não todos).

Outro exemplo: o apt-get não parece instalar corretamente os aplicativos se eu não estiver usando o mesmo método.

Eu não preciso escrever sudo se já for root.

Por que isso? O que posso fazer para corrigir isso?

    
por James Greenland 31.08.2018 / 15:36

1 resposta

3

TL, DR: use su --login ou sudo .

O Debian define um PATH diferente para usuários comuns. Em /etc/profile , você pode ver que os padrões reservam /sbin para raiz:

if [ "'id -u'" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH

type ifconfig diz que o utilitário reside em /sbin/ifconfig , e é por isso que os usuários comuns não podem acessá-lo facilmente. Quando você executa su sem argumentos, o ambiente do usuário chamador é preservado, incluindo a variável PATH . sudo , por outro lado, fornece um ambiente novo e substitui o usuário chamador PATH .

O motivo pelo qual você acredita que su não está funcionando corretamente é porque a reconfiguração de PATH e IFS por padrão é um comportamento herdado. O buster mudou recentemente para a implementação util-linux de su , que funciona de forma diferente; veja /usr/share/doc/util-linux/NEWS.Debian.gz para detalhes.

    
por 31.08.2018 / 15:49