[Server] Script unter "User" als root ausführen?

SoKoBaN

B.Ohlsen der alte Schwede
Teammitglied
Script unter "User" als root ausführen?

Ich möchte gern mit einem normalen Benutzeraccount ein Script als root ausführen.

Gibt es da eine Möglichkeit, am anfang des Scriptes auf root zu wechseln, so das der Rest des Scriptes als root ausgeführt wird?
 
unter KDE ?
kdesu scriptname
rootkennwort eingeben

in der konsole
su
rootkennwort eingeben

oder halt im script
su
verwenden.
 
Alternativ mit sudo su arbeiten.


Oder eine ganz andere Lösung: Du änderst den Eigentlümer des Scriptes selber auf root und machst es mit chmod 4711 für normale benutzer ausführbar.
 
Nicht unter KDE...Commandline

@Bio...wenn ich den Besitzer des scriptes auf root änder und ich es dann als user ausführe, läuft es nicht als root sondern als user.

Mit su muss ich das root pwd ins script includen, was ich unbedingt vermeiden will.
Nicht root soll das Script ausführen, sondern user.
Das Script soll dann nur unter root laufen und somit Vorzüge wie nice nutzen können.
 
Original geschrieben von SoKoBaN
Nicht unter KDE...Commandline

@Bio...wenn ich den Besitzer des scriptes auf root änder und ich es dann als user ausführe, läuft es nicht als root sondern als user.

Mit su muss ich das root pwd ins script includen, was ich unbedingt vermeiden will.
Nicht root soll das Script ausführen, sondern user.
Das Script soll dann nur unter root laufen und somit Vorzüge wie nice nutzen können.

Deswegen chmod 4711: Damit läuft es dann mit der UID des Eigentümers, also root wenn Du er der Eigentümer ist.
 
Jo hab ich mir auch gedacht und mal probehalber 4711 vergeben.
Dann bekomme ich aber Permission denied wenn ich das Script als User ausführen will...
 
Hätt ich auch gleich schreiben können...
Wenn ich 4777 mach, läuft das script wieder als user.

Also ich habs so getan:

chown root script.sh
chmod 4777 script.sh
bzw.
chmod 4711 script.sh

Ist doch ok, oder?

Wenn ich dann als user script.sh ausführe, läuft das script mit userID... 's soll doch aber mit rootID laufen...

gleich hüpf ich im Dreieck... ;)
 
Du änderst den Eigentlümer des Scriptes selber auf root und machst es mit chmod 4711 für normale benutzer ausführbar.
Das funktioniert nicht.
Beim Aufruf eines Skripts startet der Kernel zuerst das Command hinter '#!' mit dem dem Dateinamen in argv[0] und die Shell öffnet das File dann. Während dieser Zeit ist es theoretisch möglich, die Datei zu manipulieren, eine Race Condition. Vernünfige Shells werden SUID-Bits daher ignorieren.

HTH!
dev
 
Oben