
Ich möchte ein Skript ausführen, das Befehle einbettet, die einen Root-Benutzer erfordern, von meinem Nicht-Root-Konto aus, ohne sudo auszuführen:
/usr/local/bin/dodo
#!/bin/bash
/bin/sync && /usr/sbin/pm-suspend-hybrid
Ich habe es als Root eingerichtet und das SUID-Bit gesetzt:
chown root:root /usr/local/bin/dodo
chmod a+xrs /usr/local/bin/dodo
Aber wenn ich versuche, es auszuführen, ist das Ergebnis:
$ /usr/local/bin/dodo
This utility may only be run by the root user.
Ich habe auch eine Sudoer-Lösung versucht, indem ich die Datei hinzugefügt habe /etc/sudoers.d/dodo
:
%family ALL = (root) NOPASSWD: /usr/local/bin/dodo
Damit sollen, wenn ich mich nicht irre, Benutzer der Gruppe „family“ dazu berechtigt werden, dodo als Root ohne Passwort auszuführen. Das Ergebnis ist jedoch das gleiche.
Was vermisse ich bitte? Ich bin auf Debian Jessie
EDIT: Im letzten Fall sudo dodo
funktioniert es ohne Passwort
Antwort1
Aus dem Link von AlexP und den verschiedenen Antworten dort geht hervor, dass Folgendes gut funktioniert:
cat /usr/local/bin/dodo
#!/bin/bash
/bin/sync
exec sudo /usr/sbin/pm-suspend-hybrid
_
ls -l /usr/local/bin/dodo
-rwxr-xr-x 1 laurent family 60 déc. 18 17:47 /usr/local/bin/dodo
_
cat /etc/sudoers.d/dodo
%family ALL = (root) NOPASSWD: /usr/sbin/pm-suspend-hybrid
Dann für jeden in der Familiengruppe:
dodo
führt sync und pm-suspend-hybrid ohne Passwort oder sudo aus