Mam problem z montowaniem zdalnego serwera CIFS bez wpisu fstab, ale montowanie przez fstab nie .
Następujące polecenie działa:
$ 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
Jednakże, jeśli zamiast tego dodam następujący wiersz do / etc / fstab i spróbuję zamontować poleceniem mount
(np. mount -a
lub mount /mnt/dir
) otrzymuję wymieniony błąd poniżej:
$ 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
błąd:
$ sudo mount /mnt/csif mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Jawne ustawienie kolejności zrzutu i przejścia fsck na 0 nie pomaga. Oba polecenia wydają się robić to samo
Odpowiedź
Po wpisaniu polecenia montowania część jest najpierw obsługiwany przez powłokę i staje się password=C
, zanim dotrze do polecenia montowania. Nie dzieje się to w przypadku wpisów fstab, więc musisz usunąć pojedyncze cudzysłowy. Jeśli hasło zawiera znaki specjalne, możesz je zastąpić kodem ósemkowym, w szczególności \040
spacją.
Komentarze
- Musiałem użyć cudzysłowów, aby uniknąć interpolacji powłoki znaków specjalnych w haśle. Usunięcie cudzysłowów w połączeniu z podstawieniem wartości ósemkowych dla znaków specjalnych hasła ' rozwiązało mój problem. Dziękuję.
Odpowiedź
Dobrą praktyką jest unikanie umieszczania haseł bezpośrednio w /etc/fstab
(który jest normalnie czytelny dla wszystkich). Zamiast tego umieść je w pliku i odwołaj się do pliku w stylu:
//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
należy do odpowiedniego użytkownika (root lub użytkownika odpowiadającego użytkownikowi SMB, który jest właścicielem udziału SMB) oraz chmod og-rwx
. Zawiera poświadczenia w formacie
domain=A username=B password=C
A
, B
i C
powyżej muszą być dosłowne – nie ma powłoki parsującej cudzysłowy lub ukośniki odwrotne.