(gelöst) unmounten mit sudo

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
guennid

(gelöst) unmounten mit sudo

Beitrag von guennid » 12.12.2017 08:33:24

/etc/sudoers:

Code: Alles auswählen

user ALL=(root) NOPASSWD:/Pfad/zum/script1
user ALL=(root) NOPASSWD:/Pfad/zum/script2
script1:

Code: Alles auswählen

sudo /bin/mount /pfad/zur/Quelle mountpoint
script2:

Code: Alles auswählen

sudo /bin/umount mountpoint
Warum wird bei der Ausführung von script2 durch user das Root-Passwort verlangt? (Für script1 wird es nicht verlangt.)

Anders gefragt: Wie erreiche ich, dass auch script2 ohne Root-Passwort ausgeführt wird?

edit:
Code-Tags eingefügt.
Zuletzt geändert von guennid am 12.12.2017 10:59:02, insgesamt 2-mal geändert.

uname
Beiträge: 12046
Registriert: 03.06.2008 09:33:02

Re: unmounten mit sudo

Beitrag von uname » 12.12.2017 08:50:12

Als erstes würde ich in den Scripten das "sudo" entfernen. Über

Code: Alles auswählen

sudo /Pfad/zum/script1 
sudo /Pfad/zum/script2
werden die Scripte bereits als root ausgeführt. Achte darauf, dass die Scripte auch root gehören und nicht vom Benutzer geändert werden können ;-)

Solltest du umgekehrt als Benutzer die Scripte ohne sudo aufrufen wollen also:

Code: Alles auswählen

/Pfad/zum/script1 
/Pfad/zum/script2
so musst du entsprechend

Code: Alles auswählen

/bin/mount 
/bin/umount 
in /etc/sudoers für user eintragen. Damit gibst du dem Benutzer aber weit mehr Rechte. Persönlich würde ich den ersten Ansatz wählen. In deiner jetzigen Form ist sudo doppelt.

guennid

Re: unmounten mit sudo

Beitrag von guennid » 12.12.2017 09:11:02

Der Fehler lag an einer anderen Stelle, und ich habe es nach langem Experimentieren :evil: eben erst entdeckt. :oops:

Trotzdem danke!

Ich will die scripte ohne die Eingabe von "sudo" beim ihrem Aufruf ausführen. Und ich meine, ich hätte das bereits ohne sudo im script getestest und dann wäre ebenfalls das Root-Passwort verlangt worden.

Aber ich werd's nochmal testen. Ich bastele seit gestern Abend an dem Drei-bis Vierzeiler!

PS:
Ich hab's getestet: Rechte wie angegeben geändert, sudo im script entfernt:

Code: Alles auswählen

~$ /Pfad/zum/script1
-bash: /Pfad/zum/script1: Keine Berechtigung
~$ sudo /Pfad/zum/script1
~$

TomL

Re: unmounten mit sudo

Beitrag von TomL » 12.12.2017 10:05:07

guennid hat geschrieben: ↑ zum Beitrag ↑
12.12.2017 09:11:02
Ich will die scripte ohne die Eingabe von "sudo" beim ihrem Aufruf ausführen.
Das ist aber der richtige Weg und es geht imho auch nicht anders. Es gilt die Prämisse, es kann via sudo der Befehl mit "root"-Rechten ausgeführt werden, der in der sudoers definiert ist. Also entweder mit "sudo scriptname" das Script, welches einen expliziten Mount ausführt, oder im Script mit "sudo mount", um zu mounten und wenn /bin/mount in der sudoers steht. Der zweite Weg ist der schlechtere, weil damit pauschal alle Mounts erlaubt sind.

Erstelle einfach einen "sprechenden" Alias für den beabsichtigten Mountbefehl, der auf "sudo mountscript" übersetzt wird, dann braucht der Anwender kein "sudo" voranstellen und im Script wird auch kein "sudo" verwendet. Alternativ geht auch ein Wrapper-Script, welches "sudo mountscript" startet. Und noch eleganter gehts, wenn "mountscript" prüft, ob es als root-gestartet wurde und sich selber mit sudo rekursiv startet, wenn nicht... *fg*

uname
Beiträge: 12046
Registriert: 03.06.2008 09:33:02

Re: unmounten mit sudo

Beitrag von uname » 12.12.2017 10:11:52

Du kannst alternativ noch setuid-root für die Programme versuchen und auf sudo verzichten. Bei nur einen Benutzer mag das in Ordnung sein. Bei einem Mehrbenutzersystem ist das ungeeignet.

https://de.wikipedia.org/wiki/Setuid
Zuletzt geändert von uname am 12.12.2017 10:20:53, insgesamt 1-mal geändert.

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: unmounten mit sudo

Beitrag von pferdefreund » 12.12.2017 10:13:42

... oder verwende pmount. Da kann man genau definieren, was der Benutzer mounten darf. Spart mir sudo, was ja wirklich möglichst wenig genutzt werden sollte und funktioniert zuverlässig auch in Scripts.

guennid

Re: unmounten mit sudo

Beitrag von guennid » 12.12.2017 10:19:26

Ohne Beispiele verstehe ich das nicht, Thomas.

Ich meine, nur das gemacht zu haben, was du mir hier (1) empfohlen hast und das funktioniert auch.

Was deinen letzten Beitrag angeht, nur soviel angesichts meines Unverständnisses: unames zweiten Weg habe ich gar nicht in Erwägung gezogen, falls du den in deinem Beitrag ansprichst.

(1) viewtopic.php?f=29&t=167857

Ich lass es, wie von Thomas empfohlen und wie ich's vor Threaderöffnung hatte, bzw ich erlaube genau einem User genau diesen Mountvorgang in /etc/fstab, dann bin ich sudo an dieser Stelle los.

TomL

Re: unmounten mit sudo

Beitrag von TomL » 12.12.2017 11:51:12

guennid hat geschrieben: ↑ zum Beitrag ↑
12.12.2017 10:19:26
Ohne Beispiele verstehe ich das nicht
Das ist einfach.

Code: Alles auswählen

#!/bin/bash

if [[ $EUID -ne 0 ]]; then
   echo "als user"
   sudo $0
   exit 0
fi

echo "als root"
In der letzten Zeile würde dann Dein ausdrücklicher Mount oder Umount stehen. Das Script und der betroffene User ist in der sudoers eingetragen... damit kann der User als normaler User einfach das Script aufrufen, welches sich dann selber mit "sudo" startet... davon kriegt der User gar nix mit und er muss nix von sudo wissen. Und ein Script hast Du ja sowieso .....

Benutzeravatar
TRex
Moderator
Beiträge: 8040
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: unmounten mit sudo

Beitrag von TRex » 12.12.2017 12:38:54

guennid hat geschrieben: ↑ zum Beitrag ↑
12.12.2017 09:11:02
PS:
Ich hab's getestet: Rechte wie angegeben geändert, sudo im script entfernt:

Code: Alles auswählen

~$ /Pfad/zum/script1
-bash: /Pfad/zum/script1: Keine Berechtigung
~$ sudo /Pfad/zum/script1
~$
Sind die überhaupt als ausführbar markiert? Sieht mir nämlich nicht danach aus (und es könnte sein, dass sudo darüber hinwegsieht).
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

uname
Beiträge: 12046
Registriert: 03.06.2008 09:33:02

Re: (gelöst) unmounten mit sudo

Beitrag von uname » 12.12.2017 13:51:02

Wahrscheinlich nur ausführbar für root. Poste:

Code: Alles auswählen

ls -l datei
Oder

Code: Alles auswählen

chmod 755 datei

guennid

Re: (gelöst) unmounten mit sudo

Beitrag von guennid » 12.12.2017 17:15:20

TRex hat geschrieben:Sind die überhaupt als ausführbar markiert?
Sind sie. Leute, das "Problem" ist gelöst. :wink: Wenn ihr nicht mehr durchblickt, wie ich's gelöst habe, das aber gerne tun würdet, setze ich mich auch noch 'ne halbe Stunde hin und versuche, eine Erklärung zu formulieren.

Über Thomas' Beispielvariante denke ich noch nach und werde sie gegebenenfalls auch noch testen.

Antworten