staging.inyokaproject.org

Laufwerke mounten, Passwort mehrfach

Status: Ungelöst | Ubuntu-Version: Kubuntu 18.04 (Bionic Beaver)
Antworten |

michahe

Anmeldungsdatum:
12. Dezember 2013

Beiträge: 874

Hallo,

ich möchte mehrere Laufwerke mounten und dabei das für die Laufwerke identische Passwort nur einmal abfragen. Die Laufwerke sind in der /etc/fstab wie folgt aufgeführt.

1
//RechnerName/XYZ-Daten                       /media/RechnerName cifs    noauto,_netdev,users,uid=1000,gid=1000   0     0

Dann habe ich die Passwortabfrage und einen mount-Versuch:

1
2
3
4
5
6
7
8
9
variable=$(kdialog --password "PASSWORD bitte:");
if [ "$?" = 0 ]; then
   kdialog --msgbox "$variable";
   mount '/media/Rechnername' -o password=$variable
elif [ "$?" = 1 ]; then
   kdialog --sorry "YOU CHOSE CANCEL";
else
   kdialog --error "ERROR";
fi;

Dieser mount-Befehl verlangt root-Rechte, damit müsste der Nutzer erst das root-Password, dann das Password für das zu mountende Laufwerk eingeben.

Die Direkt-Eingabe im Terminal

1
mount '/media/Rechnername'

führt nach Eingabe des Password für das zu mountende Laufwerk zum Erfolg. Wie kann ich das auch per Bash-Code erreichen?

Danke. Michael

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Normalerweise macht man das so, dass man unter /root eine Datei mit den Credentials ablegt, die Rechte 0600 hat und in der /etc/fstab referenziert wird. Siehe das Wiki Samba Client cifs

michahe

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2013

Beiträge: 874

Vielen Dank rklm für die Rückmeldung. Der von Dir vorgeschlagene Weg überfordert meine Kenntnisse und Möglichkeiten bei Weitem und ich mag da nichts tun, was ich nicht durchschaue und auch in einigen Monaten nicht mehr durchblicke.

Eine ähnliche Anfrage habe ich bei UbuntuUsers gefunden, aber die (abgewandelte) erste Variante verlangt wieder "root"

mount -o '/media/Rechnername' username=user,password="GEHEIM"

Ähnlich hier, landet bei der "root"-Anforderung.

Warum der programmierte Weg "root" verlangt während die Handeingabe dem Nutzer erlaubt ist, erschlißet sich mir nicht. Falls es also wirklich keinen Weg gibt, dem mount-Befehl als nicht-"root"-Benutzer das Passwort in einer Bash-Routine mitzugeben, muss ich bei der Mehrfach-Handeingabe bleiben.

Thomas_Do Team-Icon

Moderator
Avatar von Thomas_Do

Anmeldungsdatum:
24. November 2009

Beiträge: 8808

michahe schrieb:

Dieser mount-Befehl verlangt root-Rechte, damit müsste der Nutzer erst das root-Password, dann das Password für das zu mountende Laufwerk eingeben.

Das ist allerdings merkwürdig, in der fstab ist ja "users" als option gesetzt. Klappt es, wenn Du die Skriptbefehle (mit variable ohne kdialog) manuell im Terminal ausführst?

michahe

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2013

Beiträge: 874

Danke Thomas_Do, dieses habe ich jetzt im Terminal getestet:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
BenutzerName@RechnerNameARBEIT:$ mount -o '/media/RechnerNameMOUNT' password="GEHEIM"
mount: nur „root“ kann die Option „--options“ verwenden

BenutzerName@RechnerNameARBEIT:$ password="GEHEIM"

BenutzerName@RechnerNameARBEIT:$ mount -o '/media/RechnerNameMOUNT' password="$password"
mount: nur „root“ kann die Option „--options“ verwenden

BenutzerName@RechnerNameARBEIT:$ mount '/media/RechnerNameMOUNT' password="$password"
mount: nur „root“ kann dies tun

BenutzerName@RechnerNameARBEIT:$ mount '/media/RechnerNameMOUNT'
Password for BenutzerName@//RechnerNameMOUNT/FreigabeName:  *****

In der letzten Variante (Hand-Eingabe des Passwort für den zu verbindenden PC) klappt die Einbindung.

1
2
bashBenutzerName@RechnerNameARBEIT:$ umount '/media/RechnerNameMOUNT'
BenutzerName@RechnerNameARBEIT:$ 

Zur Sicherheit noch einmal der Eintrag in der fstab; habe ich dort etwas falsch?

1
//RechnerName/FreigabeName    /media/Rechnername cifs    noauto,_netdev,users,uid=1000,gid=1000   0     0

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

michahe schrieb:

Danke Thomas_Do, dieses habe ich jetzt im Terminal getestet:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
BenutzerName@RechnerNameARBEIT:$ mount -o '/media/RechnerNameMOUNT' password="GEHEIM"
mount: nur „root“ kann die Option „--options“ verwenden

BenutzerName@RechnerNameARBEIT:$ password="GEHEIM"

BenutzerName@RechnerNameARBEIT:$ mount -o '/media/RechnerNameMOUNT' password="$password"
mount: nur „root“ kann die Option „--options“ verwenden

BenutzerName@RechnerNameARBEIT:$ mount '/media/RechnerNameMOUNT' password="$password"
mount: nur „root“ kann dies tun

BenutzerName@RechnerNameARBEIT:$ mount '/media/RechnerNameMOUNT'
Password for BenutzerName@//RechnerNameMOUNT/FreigabeName:  *****

Du verwendest die Option "-o" falsch. Was danach kommt, ist doch gar keine Option sondern der Mountpunkt.

In der letzten Variante (Hand-Eingabe des Passwort für den zu verbindenden PC) klappt die Einbindung.

Das liegt daran, dass Du -o weggelassen hast. Möglicherweise funktioniert eine dieser Formen im Skript:

1
2
echo "$password" | mount '/media/RechnerNameMOUNT'
{ sleep 1; echo "$password"; } | mount '/media/RechnerNameMOUNT'
1
2
bashBenutzerName@RechnerNameARBEIT:$ umount '/media/RechnerNameMOUNT'
BenutzerName@RechnerNameARBEIT:$ 

Wozu postest Du das? Habe ich etwas übersehen?

Zur Sicherheit noch einmal der Eintrag in der fstab; habe ich dort etwas falsch?

1
//RechnerName/FreigabeName    /media/Rechnername cifs    noauto,_netdev,users,uid=1000,gid=1000   0     0

Sieht für mich gut aus.

michahe

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2013

Beiträge: 874

Danke, rklm

Du verwendest die Option "-o" falsch. Was danach kommt, ist doch gar keine Option sondern der Mountpunkt.

Ich erhalte die identische Fehlermeldung, wenn ich mount '/media/RechnerNameMOUNT' -o password im Terminal eingebe.

Zum umount-Befehl: Du hast nichts übersehen, den hatte ich zum "Beweis" angefügt, dass die Einbindung nach Hand-Eingabe des password funktioniert.

Jetzt die Versuche mit Deinen beiden Vorschlägen in einer Test.sh:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Verzeichnis='/media/RechnerNameMOUNT'

password=$(kdialog --password "PLEASE ENTER YOUR PASSWORD");
if [ "$?" = 0 ]; then
	kdialog --msgbox "$password";
#    echo "$password" | mount '/media/RechnerNameMOUNT' # VARIANTE A
     { sleep 1; echo "$password"; } | mount '/media/RechnerNameMOUNT'   # VARIANTE B
#	mount '/media/RechnerNameMOUNT' -o password=$password   # VARIANTE ALT; Ergebnis: nur "root" ...
elif [ "$?" = 1 ]; then
	kdialog --sorry "YOU CHOSE CANCEL";
else
	kdialog --error "ERROR";
fi;

Identische Fehlermeldung für Varianten A und B:

1
2
3
4
5
6
BenutzerName@RechnerNameARBEIT:$ bash test.sh
Failed to query password: Permission denied
Password for BenutzerName@//RechnerNameMOUNT/FreigabeName: 
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
BenutzerName@RechnerNameARBEIT:$ 
Antworten |