Forum: PC Hard- und Software Wie Root-Befehle in Bashscript als User ausführen ?


von S. M. (smatlok)


Lesenswert?

Hallo,

Situation:
Ich habe in meinem Linux(Debian) Server u.a. eine 500gb Platte, welche 
ich nur selten zu Backupzwecken verwenden will. Damit sie in den 
Tagen/Wochen dazwischen auch definitiv nicht mehr aus Spass anläuft, 
möchte ich sie in einem kleinen Script umounten und in standby 
versetzen.

Problem:
Befehle wie mount, hdparm usw benötigen ja Rootrechte -- jedoch möchte 
ich das script auch gerne irgendwie als Gast/normaler User ausführen 
können, so dass meine Mitbewohner auch mal die Festplatte verwenden 
können, wenn ich mal nicht daheim bin..

Idee ? Kenn mich leider kaum mit unix aus.

von Ekschperde (Gast)


Lesenswert?

Normalerweise macht das sudo.

Die man-page darfst Du aber alleine lesen.

> Linux(Debian)...
> Kenn mich leider kaum mit unix aus.
Mutig, mutig...

von Chris (Gast)


Lesenswert?

Die saubere Methode un das mounten zu erlauben ist es, unter /etc/fstab 
bei der gewünschten Partition die Mount-Option "user" einzutragen. Dann 
kann auch ein nicht-super-user mounten und unmounten.

Einem shell-skript kann man aus guten Grund kein suid root geben, und 
auch für (u)mount und hdparm steht suid root außer Frage.

sudo wäre auch eine Möglichkeit, um gezielt einzelnen Usern bestimmte 
mount- und hdparm-Befehle zu erlauben. Allerdings musst du das sehr gut 
konfigurieren, damit dadurch kein Sicherheitsrisiko entsteht (unbedingt 
Kommandozeilen-Parameter festlegen). Das Suchwort für diese Methode 
lautet "sudoers".

von S. M. (smatlok)


Lesenswert?

Hm, wenn ich das jetz richtig verstanden habe, dann:

-> es existiert bereits für meine wg-bewohner ein sudologin, jedoch ist 
es recht umständlich erst das passwort eingeben zu müssen.

Ausserdem möchte ich das auch gern mit einer Tastenkombi starten, jedoch 
werden die Tastenkombinationsbefehle auch nur vom immer laufenden 
Gastaccount ohne Rootrechte ausgeführt.

Erklärung: der Server steht zentral im Flur und wird neben Datenserver 
und diversen Spielereien als 
Frühstücksnews-Wetter-Bus-Bahnverbindungs-Informationsstation genutzt, 
es ist also immer der "WG Gast" auf fluxbox eingeloggt. Da auch ab und 
zu hier fremde leute unterwegs sind, möchte ich nicht pauschal allzuviel 
Rechte vergeben ;-)

von S. M. (smatlok)


Lesenswert?

@ Chris (Gast)

Ah, nicht schlecht! schonmal halbes Problem gelöst, danke für den Tipp 
:-)

von Matt (Gast)


Lesenswert?

Vielleicht reicht Dir schon http://hd-idle.sourceforge.net/ ? Das 
koennte als suid root evtl. weniger gefaehrlich sein als hdparm.
Gruesse

von Matt (Gast)


Lesenswert?

Edith sagt: Bei nicht gemountetem Laufwerk sollte selbiges eigentlich 
nicht von selbst anlaufen, also geht es mglw. auch ohne manuelles 
Ausfuehren als suid root, die HD geht dann einfach von slebst nach 10min 
Ruhe aus.

von Peter (Gast)


Lesenswert?

die Frage ist doch wie gut ist das für die Festplatte ständig an und 
ausgeschaltet zu werden? Wenn es nur einmal am Tag ist mag das noch 
gehen, aber wenn es 10mal pro Tag wird dann geht sie dadurch zeitiger 
Kaputt.

von 1/4Guru (Gast)


Lesenswert?

@S. Matlok

Sowas habe ich mir auch schon überlegt, wollte es aber über www steuern. 
Die einzige "saubere" Methode die mir eingefallen ist wäre diese:

schreib dir ein Cronskript oder Hintergrundprozess der als root läuft 
und in eine Datei schaut. Steht z.B. in der Datei eine 0 dann wird das 
Laufwerk getrennt und bei einer 1 eingehängt.

Wenn sich beim trennen jemand im Laufwerk befindet wird es Probleme 
geben und eine "force" ist dann nicht angebracht.

Meine Platten (nicht root) gehen nach etwas 10min. in den suspend (per 
hdparm eingestellt). Wenn ich nicht über das Netz auf die Platte 
zugreife bleibt sie im suspend und gut ist.

@Peter

smartctl ist dein Freund

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

S. Matlok wrote:

> -> es existiert bereits für meine wg-bewohner ein sudologin, jedoch ist
> es recht umständlich erst das passwort eingeben zu müssen.

Dann konfigurierst Du sudo passowortlos.

von Chris (Gast)


Lesenswert?

>> -> es existiert bereits für meine wg-bewohner ein sudologin, jedoch ist
>> es recht umständlich erst das passwort eingeben zu müssen.
> Dann konfigurierst Du sudo passowortlos.

Genau das meinte ich. Dann ist es aber sehr wichtig, die exakte (!) und 
vollständige Kommandozeile festzulegen, die passwortlos als root 
ausgeführt werden darf.

In diesem Fall müssen also die Parameter von hdparm in der Datei sudoers 
genauestens festgelegt werden, damit man keinen Unfug treiben kann.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Chris wrote:
>>> -> es existiert bereits für meine wg-bewohner ein sudologin, jedoch ist
>>> es recht umständlich erst das passwort eingeben zu müssen.
>> Dann konfigurierst Du sudo passowortlos.
>
> Genau das meinte ich. Dann ist es aber sehr wichtig, die exakte (!) und
> vollständige Kommandozeile festzulegen, die passwortlos als root
> ausgeführt werden darf.

Jemanden, den ich root-Rechte gebe, muss vertrauenswuerdig sein. Wenn er 
es nicht ist, bekommt er kein root auf der entsprechenden Maschine. 
"root unter Vorbehalt" ist Unfug.

> In diesem Fall müssen also die Parameter von hdparm in der Datei sudoers
> genauestens festgelegt werden, damit man keinen Unfug treiben kann.

Siehe oben. Selbiges gilt natuerlich fuer unqualifizierte Benutzer => 
kein root.

von Meckerer (Gast)


Lesenswert?

@linuxtroll:

Dir wünsche ich mal ein linuxbasiertes Consumergerät, wo der
Entwickler sich auch dachte:

> Jemanden, den ich root-Rechte gebe, muss vertrauenswuerdig sein. Wenn er
> es nicht ist, bekommt er kein root auf der entsprechenden Maschine.
> "root unter Vorbehalt" ist Unfug.

Damit dann viel Spass...

BTW.: es heisst: ... ,dem ... (Dativ)

von Morin (Gast)


Lesenswert?

> Genau das meinte ich. Dann ist es aber sehr wichtig, die exakte (!) und
> vollständige Kommandozeile festzulegen, die passwortlos als root
> ausgeführt werden darf.

Stichwort: setuid-bit, ein Dateityp-Bit für ausführbare Dateien. Wer das 
Programm ausführen darf wird durch die Access-bits festgelegt, das 
Programm wird dann aber mit den Rechten des Dateibesitzers ausgeführt. 
Das Programm macht dann selbstverständlich nur solche Sachen, die der 
Besitzer gutheißt. Wird gern verwendet um z.B. den mount-Befehl für 
nicht-root-Benutzer zugänglich zu machen, obwohl dieser ja mit 
root-Rechten das Dateisystem verändern muss.

> Jemanden, den ich root-Rechte gebe, muss vertrauenswuerdig sein. Wenn er
> es nicht ist, bekommt er kein root auf der entsprechenden Maschine.
> "root unter Vorbehalt" ist Unfug.

Wenn du das für Unfug hältst dann schlag eine Alternative vor.

von LINUX (Gast)


Lesenswert?

> Stichwort: setuid-bit, ein Dateityp-Bit für ausführbare Dateien. Wer das
> Programm ausführen darf wird durch die Access-bits festgelegt, das
> Programm wird dann aber mit den Rechten des Dateibesitzers ausgeführt.
> Das Programm macht dann selbstverständlich nur solche Sachen, die der
> Besitzer gutheißt. Wird gern verwendet um z.B. den mount-Befehl für
> nicht-root-Benutzer zugänglich zu machen, obwohl dieser ja mit
> root-Rechten das Dateisystem verändern muss.

Wat bist du denn fuer ein noob-arsch !

> Das Programm macht dann selbstverständlich nur solche Sachen, die der

Du solltest lebenslänglich Rechnerverbot bekommen !


DAS setuid-bit darf nur aktiviert werden, wenn das eigentlich Programm 
eine eigene Sicherheitsüberprüfung mit drin hat ob Morin & Co. keine 
Scheisse anstellen. Auf alle Fälle NIE einschalten bei solchen SPAM & 
Virenversendern wie die es sind.

von Morin (Gast)


Lesenswert?

Das einzige, was ich aus deinem geistreichen Kommentar entnehmen konnte, 
ist genau das, was ich schon erwähnt hatte: Da ein Anwender per setuid 
anderen Anwendern erlaubt, in seinem Namen und mit seinen Rechten 
Programme auszuführen, sollte er tunlichst darauf achten, dass die 
solcherart "freigeschalteten" Programme nichts schlimmes anrichten... 
z.B. indem es selbstgeschriebene Programme sind, die einen einzigen 
wohlbekannten Bash-Befehl ausführen und sonst nix (Achtung: bin nicht 
sicher, ob das Bit bei Bash-Scripten so wie gedacht funktioniert, also 
vorher nachprüfen!)

von Chris (Gast)


Lesenswert?

> anderen Anwendern erlaubt, in seinem Namen und mit seinen Rechten
> Programme auszuführen, sollte er tunlichst darauf achten, dass die
> solcherart "freigeschalteten" Programme nichts schlimmes anrichten...
> z.B. indem es selbstgeschriebene Programme sind, die einen einzigen
> wohlbekannten Bash-Befehl ausführen und sonst nix (Achtung: bin nicht
> sicher, ob das Bit bei Bash-Scripten so wie gedacht funktioniert, also
> vorher nachprüfen!)

Nein, bei Bash-Skripten und allgemein Skripten aller Art wird das 
setuid-Bit ignoriert, weil es extrem schwierig ist, ein Skript 
hundert-prozentig abzusichern.

setuid auf mount setzen halte ich ebenfalls für keine gute Idee, damit 
kann viel zu viel Unfug getrieben werden. Am Ende kann man damit noch 
eine root-shell öffnen, weil mount überhaupt nicht unter 
setuid-root-Aspekten programmiert wurde.

Bevor man überhaupt über setuid nachdenkt, sollte man es zuerst mit der 
schon mehrfach erwähnten sudo-Methode versuchen: Das hat einen ähnlichen 
Effekt wie setuid, nur dass man eben die Parameter vorschreiben kann. 
Der Nicht-root-Nutzer, der dann mount aufruft, kann also nur bestimmte, 
vorgeschriebene Parameter übergeben und so keine unerwarteten Dinge mit 
dem mount-Befehl verursachen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.