Erro de comandos raiz do OpenSuse

0

Alguém pode explicar por que esses comandos não funcionam

me@suse:~> ifconfig
Absolute path to 'ifconfig' is '/sbin/ifconfig', so running it may require superuser privileges (eg. root).

.

me@suse:~> sudo ifconfig
root's password:
sudo: ifconfig: command not found

E por que isso funciona

me@suse:~> sudo /sbin/ifconfig

.

suse:/home/me # ifconfig

Eu sei que é algo relacionado com o usuário root, mas eu quero uma explicação melhor.

    
por Alexandre Vicenzi 21.03.2014 / 02:01

1 resposta

2

Normalmente o usuário com UID 0 (ou seja, root) tem um $PATH set modificado, que inclui diretórios como /sbin e /usr/sbin , enquanto o usuário 'normal' não tem (já que muitos programas nesses diretórios exigem super privilégios de usuário e não será muito útil para usuários normais de qualquer maneira). Assim, se um usuário normal quiser chamar qualquer coisa nesses diretórios que faltam em seu $PATH , ela precisa especificar o caminho completo do programa, enquanto 'root' pode chamá-los sem essa necessidade.

A chamada de sudo <program> também não funciona, porque sudo herda seu ambiente (e, portanto, $PATH ) do processo de chamada (que é desprivilegiado e, portanto, está com falta de /sbin ).

Você pode tentar isso chamando echo $PATH one no shell do seu usuário e uma vez em um shell raiz (não com sudo ).

    
por 21.03.2014 / 02:19