Je veux que l'utilisateur par défaut ubuntu
puisse exécuter un service spécifique sans être invité à saisir un mot de passe.
Plus précisément systemctl restart unicorn_my_app.service
.
J'ai suivi les instructions ici pour ajouter un utilisateur ubuntu
à un groupe nouvellement créé LimitedAdmins
, ce qui est confirmé par:
$ getent group LimitedAdmins
LimitedAdmins:x:1001:ubuntu
Création d'un nouveau fichier, limitedadmins
(à l'aide sudo vim
) dans le /etc/sudoers.d
répertoire contenant le texte suivant:
%LimitedAdmins ALL=NOPASSWD: /etc/init.d/unicorn_ofn_america restart, /etc/init.d/unicorn_ofn_america start
J'ai aussi essayé:
%LimitedAdmins ALL=NOPASSWD: /bin/systemctl/unicorn_ofn_america restart, /bin/systemctl/unicorn_ofn_america start
(Et /bin/systemd
)
Le contenu de /etc/sudoers/
est la valeur par défaut confirmée par sudo visudo
(ou 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
(La connexion de hachage #includedir
n'est pas un commentaire, mais fait partie de la syntaxe de la directive #include ).
Cependant, il y a toujours une invite de mot de passe après l'exécution systemctl restart unicorn_my_app.service
Le service est là dans l' init.d
annuaire:
$ ls -l /etc/init.d | grep unicorn
-rwxr--r-- 1 ubuntu ubuntu 1874 Oct 29 06:47 unicorn_my_app
J'ai essayé chmodding 755
sur l'application, mais ne pense pas que cela devrait faire la différence, car ubuntu
il le possède de toute façon.
Même essayé de redémarrer le système sans aucune différence. Suis-je en train de manquer une étape, comme un redémarrage / rechargement)? Configurer quelque chose de mal?
Je dois également mentionner que j'avais l'habitude vim
de créer le nouveau fichier à l'intérieur /etc/sudoers.d
, car il semble que la visudo
commande ne soit que pour l'édition /etc/sudoers
.