cifs, smb - Nie można zamontować (odmowa uprawnień) lub poruszać się po folderze współdzielonym

13

Niedawno wpadłem na ten problem. Zazwyczaj poruszam się po udostępnionym folderze sieci lokalnej z komputera z systemem Linux za pośrednictwem protokołu smb (tj. Z menedżera plików za pomocą protokołu smb:). Teraz za każdym razem, gdy próbuję uzyskać dostęp do skrótu lub ponownie wpisać dane logowania, pojawia się okno dialogowe z pytaniem o użytkownika, domenę i hasło.

Próbowałem więc ręcznie zamontować lokalizację za pomocą cisf-utils, wykonując:

sudo mount -t cifs //fileshare1/docs1/user/My\ Documents/shared/Francesco/ /home/frank/used_shared/ -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000

I dostać mount error(13): Permission denied.

Jestem pewien, że mój użytkownik ma uprawnienia do tego folderu, ponieważ mogę uzyskać do niego dostęp z komputera z systemem Windows.

Również jeśli spróbuję zamontować mój folder osobisty w tej lokalizacji poprzez:

sudo mount -t cifs //fileshare1/docs5/francesco.azzarello/ /home/frank/mnt_folder -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000

Mogę uzyskać do niego dostęp bez problemu.

W celach informacyjnych używam ogólnego jądra 4.2.0-36, a moja wersja mount.cifs to 6.4

Masz pomysł, jak sprawić, by jedna z obu metod działała?


Zaktualizuj odpowiedź Rgarding ponsfrilus

liczba 1: pełna opcja zwraca:

_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,uid=1000,gid=1000,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

Liczba 2 to w zasadzie to samo:

_ mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

I nic się nie zmieniło przy vers = 2.1:

_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,vers=2.1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

Jeśli chodzi o numer 4, mogę zamontować docs1 bez problemu, ale mogę nawigować, aby dostać się do folderu współdzielonego użytkownika.

Frankmtl
źródło
Wypróbuj końcówkę ponsfrilus # 3 za pomocą vers=3.0, może także vers=2.0lub vers=1.0. Jeśli to nie zadziała, być może możesz zezwolić serwerowi na połączenie szerszej gamy wersji smb. Sam miałem ten problem, ponieważ smb3 został ustawiony na serwerze zgodnie z wymaganiami. Nie mogłem połączyć się z linuksem, dopóki serwer nie obniżył wymaganej wersji samby do 2. Na jakim systemie operacyjnym działa serwer?
emk2203
2
Próbowałem ich wszystkich. Nadal dostaję „odmowę dostępu” w wersjach 3.0, 2.1 i 2.0. Podczas gdy pojawia się „nieznany błąd” w wersji 1.0. Nie wiem, jak sprawdzić wersję serwera Windows jako użytkownik, ponieważ nie mam do niej bezpośredniego dostępu.
Frankmtl
Nie mogę ci w tym pomóc, przepraszam. Miałem kontrolę nad serwerem i mój problem zniknął po rozluźnieniu dozwolonych wersji SMB. Możesz połączyć się z własnym udziałem - nieprawidłowa konfiguracja Linuksa; możesz połączyć się przez Windows, aby współdzielić - nieprawidłowa konfiguracja serwera jest mało prawdopodobna. To wymaga prawdziwego guru samby.
emk2203

Odpowiedzi:

10

Jestem prawie pewien, że napotkałem dzisiaj dokładnie ten sam problem na Ubuntu 16.10. Wypróbowałem kilka sugestii w tym wątku kilka razy, mogłem zamontować dokładnie ten sam udział za pomocą Windows Server 2016 i mogłem go przeglądać za pomocą smbclient ( smbclient -U brainstrust //WINBOX01/shared). Próbowałem nawet zewnętrznego pliku poświadczeń.

W końcu natknąłem się na poprawkę - chociaż stworzyłem lokalnego użytkownika dla udziału w oknie Windows, to również został przyłączony do domeny. Zasadniczo ustawienie domeny na maszynę lokalną -o domain=WINBOX01natychmiast rozwiązało mój problem, więc zostawiając komentarz tutaj w nadziei, że przyda się komuś tam.

Kompletne minimalne polecenie, którego użyłem to:

sudo mount.cifs -v //WINBOX01/shared /home/geoff/winbox01  --verbose -o user=brainstrust,password=topsecret,domain=WINBOX01
Geoff Williams
źródło
Dzięki za pozostawienie tego komentarza, pomogło mi to.
dleerob
Pomógł mi też. Wygląda na to, że mount -t cifs ma ten sam problem
Terminality
To właśnie okazało się moim problemem. Miałem już ~/.smbcredentialsplik. Jestem przerażony, gdy dowiedziałem się, że mój lokalny serwer NAS pozwolił mi zamontować udział przy użyciu złego hasła przez bardzo długi czas.
Charlie
Co dziwne, musieliśmy określić nazwę NetBIOS domeny, a nie nazwę hosta serwera plików. Niemniej jednak działa teraz, wielkie dzięki.
bviktor
9

Myślę, że masz zły typ zabezpieczeń dla serwera, błąd 13 oznacza, że ​​serwer cię nie wpuszcza.

Będziesz musiał wybrać odpowiedni tryb bezpieczeństwa w poleceniu mount i dodać opcję sec przez -o w następujący sposób:

sec=
   Security mode. Allowed values are:
   ·   none - attempt to connection as a null user (no name)
   ·   krb5 - Use Kerberos version 5 authentication
   ·   krb5i - Use Kerberos authentication and forcibly enable packet 
       signing
   ·   ntlm - Use NTLM password hashing
   ·   ntlmi - Use NTLM password hashing and force packet signing
   ·   ntlmv2 - Use NTLMv2 password hashing
   ·   ntlmv2i - Use NTLMv2 password hashing and force packet signing
   ·   ntlmssp - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message
   ·   ntlmsspi - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message, and force packet signing
Amias
źródło
1
Próbowałem wszystkich z nich i otrzymałem „odmowę
dostępu
Biorąc pod uwagę wszystkie ostatnie problemy bezpieczeństwa z SMB, radziłbym używać go tylko tam, gdzie istnieje wiele dodatkowych środków bezpieczeństwa, takich jak bardzo aktualne sprawdzanie wirusów.
Amias
Spróbuj użyć sec = ntlmssp i upewnij się, że konfiguracja serwera samby szyfruje hasło.
Humpity
Uratowałem mój dzień. Właściwie to po prostu usunąłem sec = ntlm i wtedy zadziałało.
chuckedw
Naprawdę powinieneś odejść od SMB, jest to prawie stałe źródło ataków i eskalacji przywilejów.
Amias
4
  1. Spróbuj dodać opcję „-v”, aby uzyskać pełne wyjście:

    sudo mount -v -t cifs //fileshare1/docs1/user/My\ 
       Documents/shared/Francesco/ /home/frank/mnt_folder -o \
       username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000
    
  2. Przetestuj za pomocą tych opcji polecenia mount

    iocharset = utf8, rw, tryb_pliku = 0777, tryb_dir = 0777 :

    sudo mount -v -t cifs //fileshare1/docs1/user/My\ 
       Documents/shared/Francesco/ /home/frank/mnt_folder -o 
       username=my_user,password=my_pass,domain=my_domain,\
       iocharset=utf8,rw,file_mode=0777,dir_mode=0777
    
  3. Test określający opcję wersji SMB (vers = 2.1), zobacz wiki samby . Ze strony podręcznika mount.cifs:

    vers =
    wersja protokołu SMB. Dozwolone wartości to:

    • 1.0 - Klasyczny protokół CIFS / SMBv1. To jest domyślne.

    • 2.0 - protokół SMBv2.002. Zostało to początkowo wprowadzone w systemie Windows Vista z dodatkiem Service Pack 1 i Windows Server 2008. Należy pamiętać, że początkowa wersja systemu Windows Vista mówiła nieco innym dialektem (2.000), który nie jest obsługiwany.

    • 2.1 - Protokół SMBv2.1, który został wprowadzony w systemie Microsoft Windows 7 i Windows Server 2008R2.

    • 3.0 - Protokół SMBv3.0, który został wprowadzony w systemie Microsoft Windows 8 i Windows Server 2012.

  4. Na koniec spróbuj zamontować tylko pierwszy udział:

    sudo mount -v -t cifs //fileshare1/docs1/ /home/frank/mnt_folder \
       -o username=my_user,password=my_pass,domain=my_domain,\
       iocharset=utf8,rw,file_mode=0777,dir_mode=0777
    

Może pomóc dowolne pełne dane wyjściowe, które możesz udostępnić.

ponsfrilus
źródło
Dziękuję za odpowiedź. Nie znalazłem lepszego sposobu na odtworzenie niż zaktualizowanie pytania. wyniki tych poleceń można znaleźć w aktualizacji
Frankmtl
@Frankmtl czy możesz porównać prawa do folderów w Udostępnianiu plików docs1 i docs5?
ponsfrilus
Przepraszam za późną odpowiedź. Jeśli masz na myśli uprawnienia do folderu po ich zamontowaniu, oba mają drwxr-xr-x
Frankmtl
Aby uzyskać dostęp do udziału serwera Windows 2012 (smb2), musisz dodać ,vers=2.1 po uid = 1000 (inaczej koniec linii). Zainstalowałem także pakiet „cifs-utils”.
laugeo
2

W przypadku tego problemu przy korzystaniu z cifs wyższych niż 6.0: nowa wersja cifs używa zamiast tego zmiennej domeny, więc plik creadentials wygląda następująco:

username=<your username>
password=<your password>
domain=<your domain>
Do Manh Tien
źródło
Rozwiązaniem dla mnie było rzeczywiście brak spacji przed i po =.
WM
2

Dodanie opcji sec=ntlmdo polecenia mount rozwiązało mój problem.

na przykład:

sudo mount -t cifs -o username=administrator,password=123456,sec=ntlm //ip/eeshare /mnt/eeshare/
Brike
źródło