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
).