Я следую вдоль Ubuntu sudoers учебному руководству.
Вот мое точное /etc/sudoers
файл (снимок экрана вместо блока кода, потому что форматирование становилось испорченным).
Заметьте строки внизу, которые должны дать deployer
пользовательское выключение питания и возможности перезагрузки. sudoers файл прекрасен синтаксически и не сохраняет проблемы.
Я закончил свою ssh сессию и вошел в систему снова.
$ whoami => deployer $ reboot => reboot: Need to be root
Какова проблема могла быть?
Некоторые мысли
Настройки, которые Вы используете, позволят Вашему пользователю работать sudo reboot
не вводя пароль. Необходимо будет всегда выполнять его с sudo
хотя, лучшее, которое можно получить, без пароля sudo
для определенных команд.
Это из-за способа, которым работает система. Когда Вы пытаетесь работать, например reboot
, как обычный пользователь, Вы получаете это сообщение:
$ reboot
reboot: must be superuser.
Это не имеет никакого отношения sudo
, рассматриваемая команда просто проверяет, равняется ли Ваш идентификатор пользователя 1 (суперпользователь) и если это не, это не позволит Вам выполнить его. Вы могли настроить свою систему, чтобы иметь другого пользователя как идентификатор пользователя 1, но это просто изменит имя пользователя root
и была бы большая проблема ни по какой причине (и не поможет Вам сделать то, чего Вы делаете попытку так или иначе).
Так, если Вы не на самом деле зарегистрированы как пользователь, идентификатор пользователя которого равняется 1, необходимо будет всегда использовать sudo
выполнять привилегированные команды. Единственное обходное решение должно было бы создать псевдоним (или функция или сценарий) для reboot
в конфигурационном файле Ваших оболочек (~/.bashrc
например):
alias reboot='sudo reboot'
Тот путь, так как Вы уже установили shutdown
быть без пароля в /etc/sudoers
, Вы сможете работать
$ reboot
и получите свой желаемый результат.