Das Skript fragt nach dem root-Kennwort, auch wenn es für alle Benutzer über ausführbare Berechtigungen verfügt

362
Gorkem

Ich habe ein Skript mit dem Namen "somescript", das über ausführbare Berechtigungen für alle Benutzer verfügt (755), aber wenn ich versuche, es mit einem Nicht-Root-Benutzer auszuführen, fragt es immer nach dem Root-Passwort. Ich habe sogar versucht, die Einstellung auf 4755 ohne Erfolg zu setzen. Nur Admin-Benutzer und Benutzer mit Root-Kennwort führen das Skript derzeit aus.

Wie kann ich es so machen, dass jeder Benutzer das Skript ausführen kann (aber es nicht ändern kann)

-rwxr-xr-x 1 root group1 2841 Jul 8 2014 somescript  user@node:~> somescript root's password: 

Edit: Nachdem Setuid und Setgid erfolgreich waren und ich sah, dass sie nicht funktionierten, überprüfte ich mehr durch das Skript und stellte fest, dass das Skript nach dem Benutzernamen root sucht, falls nicht per sudo ausgeführt, was die Verwendung des root-Passworts erzwingt. Wenn Sie dieses Skript auskommentieren, sollte es durch Setzen von setuid funktionieren, da sein Eigentümer root ist.

if [ "$uid" != "root" ] then exec sudo /someplace/somescript else 
0
Vielleicht ist es etwas in dem Skript, das erhöhte Privilegien braucht? Eugen Rieck vor 8 Jahren 2

1 Antwort auf die Frage

0
nKn

Wahrscheinlich fragt das Skript nach einer Operation mit rootPrivilegien, die nichts mit Berechtigungen zu tun hat (in diesem Fall), da diese Operation vom aktuellen Benutzer ausgeführt wird und Sie die Bits SETUIDoder nicht SETGIDaktiviert haben.

Sie können das SETUIDBit jedoch im Skript aktivieren . Dadurch wird das Skript in Ihrem Fall mit dem Eigentümerbenutzer ausgeführt. Der Benutzer, rootder das Skript ausführt, muss jedoch keine Erhöhung der Berechtigungen vornehmen.

Sie können dies tun, indem Sie Folgendes ausführen:

chmod u+s somescript 

Weitere InformationenSETUID/SETGID : Verstehen Sie die Berechtigungen setuid und setgid, um die Sicherheit zu verbessern

Danke, das Problem wurde innerhalb des Skripts gefunden, das mit einem Root-Check erstellt wurde, und eine Lösung zu meiner Frage hinzugefügt. Gorkem vor 8 Jahren 0