разрешение пользователю выполнить systemctl/systemd сервисы без пароля

Я хочу пользователя по умолчанию, ubuntu смочь выполнить определенный сервис, не будучи запрошенным пароль.

Конкретно systemctl restart unicorn_my_app.service.

Следовали инструкциям здесь для добавления пользователя ubuntu недавно созданной группе, LimitedAdmins, который подтвержден с:

$ getent group LimitedAdmins
LimitedAdmins:x:1001:ubuntu

Созданный новый файл, limitedadmins (использование sudo vim) в /etc/sudoers.d каталог, содержащий следующий текст:

%LimitedAdmins ALL=NOPASSWD: /etc/init.d/unicorn_ofn_america restart, /etc/init.d/unicorn_ofn_america start

Я также попробовал:

%LimitedAdmins ALL=NOPASSWD: /bin/systemctl/unicorn_ofn_america restart, /bin/systemctl/unicorn_ofn_america start

/bin/systemd)

Содержание /etc/sudoers/ значение по умолчанию, как подтверждено с sudo visudo (или sudo cat /etc/sudoers):

    #
    # This file MUST be edited with the 'visudo' command as root.
    #
    # Please consider adding local content in /etc/sudoers.d/ instead of
    # directly modifying this file.
    #
    # See the man page for details on how to write a sudoers file.
    #
    Defaults    env_reset
    Defaults    mail_badpass
    Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

    # Host alias specification

    # User alias specification

    # Cmnd alias specification

    # User privilege specification
    root    ALL=(ALL:ALL) ALL

    # Members of the admin group may gain root privileges
    %admin ALL=(ALL) ALL

    # Allow members of group sudo to execute any command
    %sudo   ALL=(ALL:ALL) ALL

    # See sudoers(5) for more information on "#include" directives:

    #includedir /etc/sudoers.d

(Хеш регистрируется #includedir не комментарий, но часть #include направляющего синтаксиса).

Однако существует все еще подсказка пароля после выполнения systemctl restart unicorn_my_app.service

Сервис находится там в init.d каталог:

$ ls -l /etc/init.d | grep unicorn
-rwxr--r-- 1 ubuntu ubuntu 1874 Oct 29 06:47 unicorn_my_app

Попробованный chmodding 755 на приложении, но не думают, что это должно иметь значение с тех пор ubuntu владеет им так или иначе.

Даже испытанная перезагрузка системы без различия. Я пропускаю шаг, как перезапуск/перезагрузка)? Конфигурирование чего-то не так?

Я должен также упомянуть, что использовал vim создать новый файл в /etc/sudoers.d, поскольку кажется что visudo команда только для редактирования /etc/sudoers.

25
задан 13 April 2017 в 05:23

1 ответ

sudoers файл довольно гибок, и с этим прибывает сложность. Что Вы хотите, здесь должен разрешить доступ к команде /bin/systemctl, с определенными параметрами:

%LimitedAdmins ALL=NOPASSWD: /bin/systemctl restart unicorn_my_app.service

В основном Вы просто берете точную командную строку, которую Вы ввели бы, твердый код путь в целях безопасности, и помещать это в Ваш sudoers файл (или /etc/sudoers.d). И обратите внимание, что 'запускаются', и 'перезапуск' полностью отличаются насколько sudo затронут; разрешение того не предоставит доступ к другому.

38
ответ дан 23 November 2019 в 01:13

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

Похожие вопросы: