Es tritt ein Problem auf, bei dem das Mounten eines Remote-CIFS-Servers ohne fstab-Eintrag funktioniert, das Mounten über fstab jedoch nicht
Der folgende Befehl funktioniert:
$ sudo mount -t cifs //w.x.y.z/Home$ /mnt/dir -o domain=A,username=B,password="C",sec=ntlmssp,file_mode=0700,dir_mode=0700
Wenn ich jedoch stattdessen die folgende Zeile zu / etc / fstab hinzufüge und versuche zu mounten Mit dem Befehl mount
(z. B. mount -a
oder mount /mnt/dir
) erhalte ich den aufgelisteten Fehler unten:
$ tail -n 1 /etc/fstab //w.x.y.z/Home$ /mnt/dir cifs domain=A,username=B,password="C",sec=ntlmssp,file_mode=0700,dir_mode=0700
Fehler:
$ sudo mount /mnt/csif mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Dump- und fsck-Passreihenfolge explizit festlegen auf 0 hilft nicht. Beide Befehle scheinen dasselbe zu tun.
Antwort
Wenn Sie den Befehl mount eingeben, wird der Teil password="C"
wird zuerst von der Shell verarbeitet und wird zu password=C
, bevor der Befehl mount angezeigt wird. Dies geschieht nicht mit fstab-Einträgen, daher müssen Sie die einfachen Anführungszeichen entfernen. Wenn Ihr Passwort Sonderzeichen enthält, können Sie diese durch ihren Oktalcode ersetzen, insbesondere \040
für Leerzeichen.
Kommentare
- Ich musste Anführungszeichen verwenden, um eine Shell-Interpolation von Sonderzeichen im Passwort zu vermeiden. Das Entfernen der Anführungszeichen in Verbindung mit dem Ersetzen der Kennzeichen ' durch Oktalwerte löste mein Problem. Vielen Dank.
Antwort
Es wird empfohlen, Passwörter nicht direkt in (normalerweise weltlesbar). Fügen Sie sie stattdessen in eine Datei ein und verweisen Sie auf die Datei wie folgt:
//w.x.y.z/Home$ /mnt/dir cifs credentials=/home/username/cifs.creds,sec=ntlmssp,file_mode=0700,dir_mode=0700
/home/username/cifs.creds
gehört einem geeigneten Benutzer (entweder root oder einem Benutzer, der dem SMB-Benutzer entspricht, dem die SMB-Freigabe gehört) und chmod og-rwx
Es enthält die Anmeldeinformationen im Format
domain=A username=B password=C
A
, B
und C
oben müssen wörtlich sein – es gibt keine Shell-ähnliche Analyse von Anführungszeichen oder Backslashes.