Как заставить sudo автоматически принимать пароль, не запрашивая его?

Как заставить sudo автоматически принимать пароль, не запрашивая его?

Я создал пользователя с именем shutdown, чтобы всякий раз, когда кто-то входил в систему с этим именем пользователя, машина выключалась. Для этого я поместил следующую команду в конец .profile.

exec sudo shutdown -h now

Но это не послужило цели. Когда пользователь закрывает вход, вместо того, чтобы машина выключилась, экран входа возвращается. Таким образом, пользователь не может войти, но в то же время возвращается тот же экран входа.

Причина, по которой я чувствую, в том, что поскольку пароль для пользователя shutdown не предоставлен, машина не выключается. А из-за exec экран входа возвращается (что нормально).

Теперь, чтобы решить мою работу, мне нужен способ, чтобы он автоматически принимал мой пароль при выполнении вышеуказанной команды sudo. Я проверил man sudoи думаю, что -Aопция должна быть использована.

Следуя этой странице руководства, я запустил

SUDO_ASKPASS=/home/ravbholua/pass.txt

export SUDO_ASKPASS

Затем, чтобы проверить, работает ли это, я запустил

ravbholua@ravbholua-Aspire-5315:~$ sudo -A pwd

sudo: unable to run /home/ravbholua/pass.txt: Permission denied

Из этого вывода следует, что этот файл path должен запуститься и предоставить мой пароль в качестве вывода для sudo. Ранее я думал, что он возьмет пароль из этого файла с именем pass.txt, поэтому я ввел свой пароль в этот файл. Но нет!!!!!!!

Пожалуйста, есть какие-нибудь предложения!

решение1

Предполагается, что SUDO_ASKPASS — это двоичный файл, который запрашивает у пользователя пароль. Примером его использования может быть всплывающее окно в GUI с просьбой ввести пароль, когда пользователь использует программу с GUI. На странице руководства по этому поводу говорится следующее:

Указывает путь к вспомогательной программе, используемой для считывания пароля, если терминал недоступен или указана опция -A.

Чтобы сделать то, что вы хотите, вам, вероятно, нужно отредактировать файл /etc/sudoers, чтобы разрешить пользователю «shut» запускать shutdown без указания пароля. Следующая строка позволяет пользователю «shut» запускать «/sbin/shutdown -h now» и «/sbin/shutdown -r now» на «ВСЕХ» машинах.

закрыть ВСЕ = БЕЗ ПАРОЛЯ: /sbin/shutdown -h сейчас, /sbin/shutdown -r сейчас

Более небезопасным вариантом было бы использование опции '-S' команды sudo для считывания пароля из стандартного ввода и вывода пароля на него следующим образом:

echo "пароль" | sudo -S shutdown -h now

Связанный контент