Обычно пользователь с UID 0 (т. Е. Root) имеет модифицированный $PATHнабор, который включает в себя такие каталоги, как /sbinи /usr/sbin, в то время как у «обычного» пользователя их нет (так как многие программы в этих каталогах требуют привилегий суперпользователя и не очень пригодны для этих целей. нормальные пользователи в любом случае). Таким образом, если обычный пользователь хочет вызвать что-либо в тех каталогах, которые отсутствуют в его $PATH, он должен указать полный путь к программе, в то время как «root» может вызывать их без этой необходимости.
Вызов sudo <program>также не работает, потому sudoчто наследует свое окружение (и, следовательно, $PATH) от вызывающего процесса (который непривилегирован и, следовательно, отсутствует /sbin).
Вы можете попробовать это, вызвав echo $PATHодин из них в оболочке вашего пользователя и один раз в root-shell (не с sudo).