Ik kom een probleem tegen waarbij het aankoppelen van een externe CIFS-server zonder een fstab-item werkt, maar het aankoppelen via fstab niet .
Het volgende commando werkt:
$ 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
Als ik echter in plaats daarvan de volgende regel toevoeg aan / etc / fstab en probeer te mounten door het mount
commando (bijv. mount -a
of mount /mnt/dir
), ontvang ik de foutmelding hieronder:
$ 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
fout:
$ sudo mount /mnt/csif mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Expliciet instellen van dump en fsck pass order 0 helpt niet. Beide commandos lijken hetzelfde te doen
Answer
Wanneer je het mount commando typt, zal het deel password="C"
wordt eerst afgehandeld door de shell en wordt password=C
voordat het bij het mount commando komt. Dit wordt niet gedaan met fstab-items, dus u moet de enkele aanhalingstekens verwijderen. Als uw wachtwoord speciale tekens bevat, kunt u deze vervangen door hun octale code, in het bijzonder \040
voor spatie.
Reacties
- Ik moest aanhalingstekens gebruiken om shell-interpolatie van speciale tekens in het wachtwoord te voorkomen. Het verwijderen van de aanhalingstekens in combinatie met het vervangen van octale waarden voor het wachtwoord ' s speciale tekens loste mijn probleem op. Dank je.
Antwoord
Het is een goede gewoonte om wachtwoorden niet rechtstreeks in /etc/fstab
(die normaal gesproken door iedereen gelezen kan worden). Plaats ze in plaats daarvan in een bestand en verwijs naar het bestand zoals:
//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
is eigendom van een geschikte gebruiker (ofwel root, of een gebruiker die overeenkomt met de SMB-gebruiker die eigenaar is van de SMB-share), en chmod og-rwx
. Het bevat de inloggegevens in de indeling
domain=A username=B password=C
A
, B
en C
hierboven moeten letterlijk zijn – er is geen shell-achtige ontleding van aanhalingstekens of backslashes.