cifs、smb - 無法安裝(權限被拒絕)或導航共用資料夾

cifs、smb - 無法安裝(權限被拒絕)或導航共用資料夾

我最近遇到了這個問題。我通常透過 smb 從 Linux 機器瀏覽本機網路共用資料夾(即使用 smb: 從檔案總管)。現在,每當我嘗試存取捷徑或再次輸入憑證時,我都會不斷收到詢問使用者、網域和密碼的對話方塊視窗。

所以我嘗試使用 cisf-utils 手動安裝位置:

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

我明白了mount error(13): Permission denied

我確信我的用戶擁有該資料夾的權限,因為我可以從 Windows 電腦存取它。

另外,如果我嘗試透過以下方式將我的個人資料夾安裝在該位置:

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

我可以毫無問題地訪問它。

作為參考,我使用的是 4.2.0-36-generic 內核,我的 mount.cifs 版本是 6.4

關於如何使這兩種方法之一發揮作用有什麼想法嗎?


更新關於 ponsfrilus 答案

數字 1:詳細選項回傳:

_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)_

2號基本上是一樣的事情:

_ 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)_

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)_

至於第四個,我可以掛載 docs1 沒有問題,但我可以導航到使用者中的共用資料夾。

答案1

我很確定我今天在 Ubuntu 16.10 上遇到了完全相同的問題,我多次嘗試了該線程中的所有建議,我可以使用 Windows Server 2016 安裝完全相同的共享,並且可以使用 smbclient ( smbclient -U brainstrust //WINBOX01/shared) 瀏覽它。我什至嘗試了外部憑證文件。

我最終偶然發現了一個修復程序 - 儘管我為 Windows 機器上的共享創建了一個本地用戶,但它也加入了一個網域。基本上將網域設置為本地計算機-o domain=WINBOX01立即解決了我的問題,因此在這裡留下評論,希望它對那裡的人有用。

我使用的完整的最小命令是:

sudo mount.cifs -v //WINBOX01/shared /home/geoff/winbox01  --verbose -o user=brainstrust,password=topsecret,domain=WINBOX01

答案2

我認為您的伺服器安全類型錯誤,錯誤 13 意味著伺服器不允許您進入。

您需要在 mount 指令中選擇正確的安全模式,透過 -o 新增 sec 選項,如下所示[參考]

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

答案3

  1. 嘗試新增“-v”選項以獲得詳細輸出:

    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. 使用 mount 指令的這些選項進行測試

    iocharset=utf8,rw,file_mode=0777,dir_mode=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. 測試指定 SMB 版本選項 (vers=2.1),請參閱桑巴維基。從 mount.cifs 手冊頁:

    vers=
    SMB 協定版本。允許的值為:

    • 1.0 - 經典的 CIFS/SMBv1 協定。這是預設值。

    • 2.0 - SMBv2.002 協定。這最初是在 Windows Vista Service Pack 1 和 Windows Server 2008 中引入的。

    • 2.1 - Microsoft Windows 7 和 Windows Server 2008R2 中引入的 SMBv2.1 協定。

    • 3.0 - Microsoft Windows 8 和 Windows Server 2012 中引入的 SMBv3.0 協定。

  4. 最後,嘗試僅掛載第一個共享:

    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
    

您可以分享的任何詳細輸出可能會有所幫助。

答案4

將選項新增sec=ntlm至 mount 命令解決了我的問題。

例如:

sudo mount -t cifs -o username=administrator,password=123456,sec=ntlm //ip/eeshare /mnt/eeshare/

相關內容