Ich möchte, dass der Standardbenutzer ubuntueinen bestimmten Dienst ausführen kann, ohne zur Eingabe eines Kennworts aufgefordert zu werden.
Speziell systemctl restart unicorn_my_app.service.
Befolgen Sie die Anweisungen hier , um Benutzer ubuntuzu einer neu erstellten Gruppe hinzuzufügen. Dies LimitedAdminswird bestätigt mit:
$ getent group LimitedAdmins
LimitedAdmins:x:1001:ubuntu
Erstellt eine neue Datei limitedadmins(mit sudo vim) in dem /etc/sudoers.dVerzeichnis, das den folgenden Text enthält:
%LimitedAdmins ALL=NOPASSWD: /etc/init.d/unicorn_ofn_america restart, /etc/init.d/unicorn_ofn_america start
Ich habe auch versucht:
%LimitedAdmins ALL=NOPASSWD: /bin/systemctl/unicorn_ofn_america restart, /bin/systemctl/unicorn_ofn_america start
(Und /bin/systemd)
Inhalt von /etc/sudoers/ist der Standard, wie mit sudo visudo(oder sudo cat /etc/sudoers) bestätigt:
#
# 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
(Die Hash-Anmeldung #includedirist kein Kommentar, sondern Teil der # include-Direktivensyntax. )
Nach dem Ausführen wird jedoch immer noch ein Kennwort abgefragt systemctl restart unicorn_my_app.service
Service gibt es im init.dVerzeichnis:
$ ls -l /etc/init.d | grep unicorn
-rwxr--r-- 1 ubuntu ubuntu 1874 Oct 29 06:47 unicorn_my_app
Versuchte chmodding 755auf der App, aber denke nicht, dass das einen Unterschied machen sollte, da ubuntues sowieso besitzt.
Ich habe sogar versucht, das System ohne Unterschied neu zu starten. Fehlt mir ein Schritt, wie ein Neustart / Neuladen)? Richten Sie etwas falsch ein?
Ich sollte auch erwähnen, dass ich vimdie neue Datei in erstellt habe /etc/sudoers.d, da der visudoBefehl anscheinend nur zum Bearbeiten gedacht ist /etc/sudoers.