Который и sudo не используют один и тот же путь

$ which reboot

/usr/bin/reboot

$ sudo reboot

Sorry, user myusername is not allowed to execute '/sbin/reboot' as root

Что мне здесь не хватает?

3 ответа

Решение

Я думаю, что это как-то связано с этим вопросом:

https://stackoverflow.com/questions/257616/sudo-changes-path-why

Таким образом, sudo изменяет путь, но передает его без изменений команде. Поэтому он использует / sbin / reboot для команды reboot, но передает обычный путь к команде which (которая, следовательно, находит sudo в /usr/bin/reboot).

Это говорит вам о том, что ваш sudo Права не включают в себя возможность использования reboot приложение. ПУТЬ не изменяется; это может найти reboot просто хорошо.

cat /etc/sudoersи изменить с помощью visudo как необходимо.

Когда вы запускаете команду от имени пользователя root, файлы в папке sbin имеют более высокий приоритет, чем другие папки вашего пути. Вот почему sudo выбирает / sbin / reboot. Вы должны использовать / sbin / reboot в вашем файле sudoers, или вы должны явно вызвать sudo / usr / bin / reboot

Другие вопросы по тегам