mount.cifs nie może użyć tego samego pliku danych logowania, którego używa smbclient


10

Próbuję zamontować udział NetApp CIFS na jednym z naszych serwerów i ciągle otrzymuję komunikat „Odmowa zezwolenia” na stderr i NT_STATUS_WRONG_PASSWORDdrukowany na bieżąco dmesg.

root@xxxehpvld05 ~ $ mount.cifs -vv //zhp-nas.xxx.com/perspectives /mnt/secure/cifs -o credentials=/etc/cifs.creds
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
root@xxxehpvld05 ~ $ dmesg | tail
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13

smbclientPolecenia, jednak działa bez problemu, przy użyciu tego samego pliku dokładne mandatów:

root@xxxehpvld05 ~ $ smbclient -L //zhp-nas.xxx.com/perspectives -A /etc/cifs.creds
Domain=[XXX] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       Remote IPC
        ZHPSubmit-dev   Disk
    [...snip...]

Wygląda na to, że jedno z nich powinno działać również drugie, zwłaszcza że plik poświadczeń określa również nazwę domeny.


co się stało z nagrodą?

Nigdy nie otrzymałem odpowiedzi, która zadziałała dla mnie, więc nagroda wygasła, a wszystkie te punkty poszły w drogę dodo.
Bratchley,

Jeśli potrafisz wymyślić odpowiedź, przyznam ci nową nagrodę, po prostu nie chcę zachować punktów, jeśli nie otrzymam odpowiedzi.
Bratchley,

Miałem podobny problem (z błędem -13 z modułu jądra). Zainstalowałem cifs-utilspakiet (Debian) i to rozwiązało problem. Trochę debugowałem, ponieważ nie spodziewałem się żadnego wsparcia bez zainstalowanego pakietu, więc założyłem, że tak. Spodziewałem się czegoś takiego jak „nieznany system plików” po zamontowaniu, ale tak się nie stało.
sherrellbc

Odpowiedzi:


7

Bez dodatkowych informacji nie mogę powiedzieć na pewno, ale widziałem ten problem podczas łączenia się ze starszym serwerem Windows, na którym działała starsza wersja protokołu. Pamiętaj, że CIFS jest uważany za „dialekt” (typ) SMB. Istnieją inne typy i starsze konfiguracje nie używają CIFS.

Zasadniczo to tak, jakby mówić dwie osoby. Jeden hiszpański i jeden angielski, a ty próbujesz zmusić osobę mówiącą po angielsku do zrozumienia hiszpańskiego, kiedy wyraźnie tego nie robi.

SMBclient używa innego dielektryka do negocjacji bezpieczeństwa. (lub przynajmniej wykrywa inaczej).

Próbować

mount -t cifs // ścieżka / rzecz / / mount / point -o nazwa użytkownika = użytkownik, hasło = hasło, sec = ntlm

i zobacz co się stanie. (sec = ntlm jest ważną częścią)


Ten sam problem, nawet jeśli określono uwierzytelnianie NTLM. To samo, jeśli zrobię ntlmlub ntlmv2. Nie jestem pewien, jak go rozwiązać, więc jeśli potrzebujesz więcej informacji, daj mi znać, a ja zaktualizuję pytanie. Czy mogą istnieć jakieś mechanizmy kontroli dostępu po stronie NetApp, które przegapił facet SAN?
Bratchley,

Wersja oprogramowania serwera, czy są jakieś routery lub przełączniki?
coteyr

Ta sama podsieć. Nie jestem pewien, która wersja Samby jest po drugiej stronie, ponieważ jest to urządzenie NetApp ONTAP.
Bratchley,

4

Bawiąc się poleceniami, znalazłem możliwy powód:

Ze strony podręcznika użytkownika smbclient:

   -A|--authentication-file=filename
       This option allows you to specify a file from which to read the
       username and password used in the connection. The format of the file is

           username = <value>
           password = <value>
           domain   = <value>

       Make certain that the permissions on the file restrict access from
       unwanted users.

Ze strony manuala mount.cifs:

   credentials=filename
       specifies a file that contains a username and/or password and
       optionally the name of the workgroup. The format of the file is:

          username=value
          password=value
          domain=value

Następnie utworzyłem dwa pliki referencji, jeden ze spacjami, jak pokazano w pierwszym fragmencie, a drugi bez i nazwał je credsoraz creds.spacy.

Wielkie showdown:

Z credsplikiem:

mount.cifs -vvv //host/path /local/path -o credentials=/path/creds

dobra cisza, bez błędów.

Z creds.spacyplikiem:

# mount.cifs -vvv //host/path /local/path -o credentials=/path/creds.spacy
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Oczywiście plik poświadczeń zawiera spacje, które nie są rozumiane przez mount.cifs.

Ponadto smbclientnie ma znaczenia, czy są spacje. credsi creds.spacynie spowodował żadnego cietrzewia.


Na końcu pliku była dodatkowa pusta linia, ale po usunięciu pojawia się to samo. To jest nieco zredagowana wersja tego, co znajduje się w pliku creds. Zredagowane i rzeczywiste hasła to hasła o mieszanej wielkości liter zawierające „!” jako postać specjalna.
Bratchley,

Jest jeszcze jeden aspekt, który to rozwiązanie doprowadziło mnie do znalezienia: poświadczenia muszą być w odpowiedniej kolejności, tj. Nazwa użytkownika, hasło, domena, a nie jakakolwiek inna kolejność, taka jak domena, nazwa użytkownika, hasło (co mam). Działa to również dobrze, smbclientale nie działa mount.cifs. Gdy zmieniłem kolejność na prawidłową, zgodnie z cytowaną tutaj dokumentacją, zaczęła działać. Wydaje się, że takie (zarówno niewłaściwe obchodzenie się ze spacjami, jak i kwestia zamawiania) są strasznymi błędami, które powinien łatwo naprawić każdy, kto je utrzymuje mount.cifs.
leftclickben

2

Dodanie sec = ntlm rozwiązało problem. Mam starszy NAS (netgear stora). Domyślnym zabezpieczeniem cifs w najnowszych jądrach jest ntlmssp


Pracowałem też dla mnie. Nie znam jeszcze prawdziwej przyczyny. Jeśli to komuś pomoże: isilon mount na ubuntu LTS 14.04. Isilon (niektóre rzeczy związane z SAN) rozmawia z naszym katalogiem Windows. To samo konto działało jak urok na innych komputerach i podczas bezpośredniego montażu w systemie Windows.
Reinout van Rees

Dodatkowa uwaga: 12.04 z najnowszymi aktualizacjami działa dobrze, 14.04 jest jakoś częścią problemu teraz (koniec kwietnia 2015).
Reinout van Rees

Ostatnia dodatkowa uwaga: głównym problemem był znany problem Microsoft z pamięcią masową emc isilon i aktualizacją KB3002657 (a przynajmniej tak mówi mi mój administrator :-))
Reinout van Rees

2

Inną możliwością, którą odkryłem, próbując dzisiaj zamontować udział, jest smbmountobsługa username=DOMAIN\\userskładni dostarczania użytkownika w domenie jako poświadczenia.

Do mount.cifs(i mount -t cifs) do pracy, te dwa muszą być dostarczane oddzielnie: -o username=user,password=pass,dom=DOMAIN.


Aby zamontować udział smb 3.0 obsługiwany przez NetApp Clustered Data, ONTAP musiał wywołać oba sec=ntlmidom=DOMAIN
iii

1

Jak wyjaśnił user55518, prawdopodobnie w pliku danych logowania znajdują się spacje, nawet jeśli ich nie widzisz. Jeśli edytowałeś plik poświadczeń w systemie Windows, prawdopodobnie masz go \rna końcu linii, co powoduje błąd 13.


możesz użyć listy zestawów poleceń w vimie, aby sprawdzić dodatkowe tabulatory / spacje
vfbsilva

0

Chcę wam wszystkim podziękować !!! w przypadku tego problemu, to naprawdę bardzo mi pomaga !, znalazłem też ważne informacje o parametrze „sec = ntlm”, więc zostawiam link, jeśli niektórzy z was są zainteresowani, wiersze poniżej:

Microsoft NTLM

Próbowałem zamontować katalog udostępniania z pulpitu Windows 7, ale nie byłem w stanie dodać parametru „sec = ntlm” i działa, a niektóre ważne szczegóły mogą być takie, że nie uważałem, że mój pulpit Windows 7 był domenę, więc uważam, że był to najważniejszy szczegół, który powinienem rozważyć. dlatego to działa !, naprawdę dziękuję bardzo wszystkim! błogosławieństwa !! i dobre wibracje! :RE


0

W moim przypadku musiałem tylko dodać opcję vers=3.0(CIFS to wersja 1, która nie jest już obsługiwana od jądra 4.13, więc przełączyłem się w prawo do SMBv3 na serwerze) i nadal musiałem zrestartować komputer, aby działał, to jest mój zamontuj linię /etc/fstabteraz:

auto,rw,credentials=/usr/local/etc/smb.credentials,vers=3.0,file_mode=0664,dir_mode=0775,uid=myuser,gid=users

Mój plik poświadczeń:

username=myuser
password=****
domain=mydomain

Właściwie domainto nie jest potrzebne, ale teraz jest to poprawna opcja do użycia zgodnie ze stroną podręcznika mount.cifs.


0

Walczyłem z tym przez jakiś czas.

Z następującymi błędami:

mount error(112): Host is down

tutaj pomógł ustawić opcję vers = 1.0, a następnie zgłosił

mount error(13): Permission denied

i okazało się, że w moim pliku referencji są dodatkowe „znaki”

gdzie pierwotnie miałem:

# cat /etc/samba/cred-file
username="john"
password="secret"

gdzie powinno być

# cat /etc/samba/cred-file
username=john
password=secret
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.