У меня есть служба ( kado-demo.service
), которую обычный пользователь ( kado
) должен иметь возможность перезапустить без ввода пароля.
Я создал /etc/sudoers.d/user_restart
и добавил
kado ALL=NOPASSWD: /bin/systemctl restart kado-demo.service
Разрешения:
-r--r----- 1 root root 585 Mar 5 10:47 user_restart
Как пользователь k, я теперь должен иметь возможность выполнить данную команду, но происходит следующее:
/bin/systemctl restart kado-demo.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'kado-demo.service'.
Multiple identities can be used for authentication:
(...)
Результат тот же, что и до добавления файла.
Содержит/etc/sudoers
#includedir /etc/sudoers.d
И я получаю тот же результат, когда добавляю содержимое файла user_restart
напрямую в /etc/sudoers
.
У меня заканчиваются идеи...
решение1
Чтобы sudoers
это подействовало, вам действительно придется использовать sudo
. :) Сделайте:
sudo systemctl restart kado-demo.service
И пароль не будет запрашиваться.
Если вы не используете sudo
, systemctl
возвращается к использованиюПолкитдля авторизации.
решение2
разрешить любому обычному пользователю start
или restart
услуге:
sudo visudo
userB ALL=NOPASSWD: /bin/systemctl restart serviceA.service, /bin/systemctl stop serviceA.service, /bin/systemctl start serviceA.service, /bin/systemctl status serviceA.service