visudoFügen Sie Ihrer sudoers-Datei unter Verwendung von Folgendes hinzu, und ersetzen Sie den Benutzernamen durch den richtigen Benutzernamen:
username ALL = /etc/init.d/apache2
Wenn Sie dazu kein Kennwort eingeben müssen, verwenden Sie Folgendes:
username ALL = NOPASSWD: /etc/init.d/apache2
Danach kann der Benutzer 'Benutzername' ausführen sudo /etc/init.d/apache2 start(oder stoppen, neu starten usw.)
Lange Antwort: Wenn Sie dies noch nicht getan haben, möchten Sie wahrscheinlich einen separaten Benutzer einrichten und dann die Datei / etc / sudoers so konfigurieren, dass ein Benutzer oder eine Gruppe den gewünschten Befehl ausführen kann.
Um es dem Benutzer 'ben' beispielsweise zu ermöglichen, alle Befehle als root auszuführen und zur Eingabe eines Kennworts aufzufordern, gehen Sie wie folgt vor:
ben ALL= ALL
Um zuzulassen, dass 'ben' nur einen Befehl ausführt (wie zum Beispiel, rm), würden Sie Folgendes tun:
ben ALL= /bin/rm
Wenn Sie als Benutzer ein Skript ausführen und nicht zur Eingabe eines Kennworts auffordern möchten, sollten Sie die Option 'NOPASSWD' wie folgt verwenden:
ben ALL=NOPASSWD: /bin/commandname options
Sie können das Gleiche für Gruppen tun, indem Sie den Gruppennamen ein Prozentzeichen voranstellen.
OP hat gesagt, dass dies über ein Skript geschehen soll - das Skript kann kein Kennwort eingeben, daher ergibt diese Antwort keinen Sinn.
Matt Fletcher
@ MattFletcher, es sei denn, Sie verwenden NOPASSWD
Robin Kanters
0
Sie können dies auch erreichen, indem Sie einen Wrapper für apache2ctl schreiben, einer Webadministrationsgruppe den Gruppeneigentum zuweisen und das suid-Bit setzen. Dies ist eine weniger allgemeine Lösung als visudo, ermöglicht jedoch benutzerdefinierte Einschränkungen der Benutzerfähigkeiten und der Fehlerprüfung.
username
auf eine Untermenge von Parametern beschränkt werden? Sagstart
restart
doch nichtstop
?visudo
Befehl führt Sicherheitsprüfungen für Ihre Änderungen durch, damit Sie den Befehlsudo
/ nichtsu
versehentlich unterbrechenKurze Antwort: sudo.
Der Aufruf würde ungefähr so aussehen:
sudo /etc/init.d/apache2 restart
Am einfachsten ist es, die
visudo
Datei / etc / sudoers einzurichten. Sieheman sudoers
undman visudo
für Details.quelle
Sie können dies auch erreichen, indem Sie einen Wrapper für apache2ctl schreiben, einer Webadministrationsgruppe den Gruppeneigentum zuweisen und das suid-Bit setzen. Dies ist eine weniger allgemeine Lösung als visudo, ermöglicht jedoch benutzerdefinierte Einschränkungen der Benutzerfähigkeiten und der Fehlerprüfung.
Ich habe dieses Tool für meine eigenen Bedürfnisse geschrieben und es auf github geteilt: https://github.com/josiahjohnston/ltd_apache2ctl
quelle