Wie führe ich Root-Befehlsskripte von einem Nicht-Root-Benutzer mit SUID-Verwendung aus?

Wie führe ich Root-Befehlsskripte von einem Nicht-Root-Benutzer mit SUID-Verwendung aus?

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 dodofunktioniert 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

verwandte Informationen