Который и 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