Sie können setuid und setgid nicht verwenden, um ein Shell-Skript als einen anderen Benutzer auszuführen. Es ist eine Sicherheitsfunktion, und Sie können mehr darüber in der sehr umfassenden Antwort auf diesen UL-Beitrag nachlesen .
Setuid und Setgid funktionieren nicht
Ich habe ein Problem mit Setuid und Setgid. Ich habe diesen C-Code geschrieben:
int main() { setuid(0); setgid(0); system("/path/to/script.sh"); return 0; }
Mit gcc kompiliert:
gcc test.c -o test
Dann habe ich gebraucht chmod +s
. In script.sh
gibt es nur den id
Befehl. Hier sind die Berechtigungen für die test
ausführbare Datei:
-rwxr-sr-x 1 root root 8464 mag 15 20:14 test
Beim Ausführen des Programms erhalte ich folgende Ausgabe:
uid=1000(user) gid=1000(user) gruppi=1000(user)
Warum bekomme ich die Ausgabe id
von root nicht?
2 Antworten auf die Frage
Aquote von der MAN-Seite für setuid()
Daher kann ein set-user-ID-root-Programm, das root-Berechtigungen vorübergehend löschen, die Identität eines nicht privilegierten Benutzers annehmen und anschließend root-Berechtigungen wiedererlangen möchte, setuid () nicht verwenden. Sie können dies mit seteuid (2) erreichen.
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.
Note: there are cases where setuid() can fail even when the caller is UID 0; it is a grave security error to omit checking for a failure return from setuid().
Dies bedeutet unter anderem, dass ein Benutzer nicht root
über diesen Befehl werden kann.
Wenn der gepostete Code den zurückgegebenen Wert von diesen Befehlen überprüft hätte, hätte der Befehl festgestellt, dass die Befehle fehlgeschlagen sind.
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4