Fedora

cifs:無法 cd 進入目錄

  • January 22, 2022

由於某種原因,我無法 cd 進入我有權訪問的特定遠端目錄,它失敗了:

$ cd Data\ Services/
-bash: cd: Data Services/: Invalid argument

這就是我安裝它的方式:

$ sudo mount -t cifs //big.acme.corp/network/ ~/z -o username=myuser,domain=mydomain,uid=$(id -u),gid=$(id -g),vers=1.0
Password for myuser@//big.acme.corp/network/:  *********

我可以從我的 Windows 8 筆記型電腦(相同的使用者名/密碼)上很好地訪問它。

以供參考:

$ ls -ald "Data Services"
drwx--x--x 2 myuser myuser 0 Dec 13 09:21 Data Services

至少在我這邊,這個快捷方式似乎被視為一個目錄:

$ find Data\ Services -type d
Data Services
find: ‘Data Services’: Invalid argument

因此,我無能為力:

$ cat Data\ Services
cat: Data Services: Invalid argument

甚至

$ hexdump Data\ Services
hexdump: Data Services: Invalid argument
hexdump: all input file arguments failed

如下所示,我再次嘗試使用noperm

$ sudo mount -t cifs //big.acme.corp/network/ ~/z -o username=myuser,domain=mydomain,uid=$(id -u),gid=$(id -g),noperm

這給了我:

$ mount
...
//big.acme.corp/network/ on /home/myuser/z type cifs (rw,relatime,vers=1.0,cache=strict,username=big.acme.corp,domain=mydomain,uid=1002,forceuid,gid=1003,forcegid,addr=10.1.2.3,file_mode=0755,dir_mode=0755,nounix,mapposix,noperm,rsize=61440,wsize=65536,echo_interval=60,actimeo=1)

這並沒有改變任何東西:

$ strings Data\ Services
strings: Data Services: Invalid argument

實際的根本問題是在DFS. 我的 CIFS 版本太舊了。更新到較新的系統並沒有解決所有問題,但我最終偶然發現:

這給了我一個更詳細的錯誤日誌,我發現:

[...]
[  687.037593] fs/cifs/dns_resolve.c: dns_resolve_server_name_to_ip: unable to resolve: MYSERV13
[  687.037606] fs/cifs/cifs_dfs_ref.c: cifs_compose_mount_options: Failed to resolve server part of //MYSERV13/network to IP: -2
[...]

更新我resolve.conf的:

search acme.corp

到:

search acme.corp mydoma01.acme.corp

我終於可以在mount -t cifs沒有'nodfs'選項的情況下打電話了。症狀不再是錯誤,而是簡單的資訊:

$ cd Data Services
CIFS VFS: BAD_NETWORK_NAME: \\MYSERV13\network
[...]

我終於可以Data Services毫無問題地訪問內容了。

綜上所述:

  1. 需要一些最新的 cifs-utils 包,
  2. 不要使用nodfs選項
  3. 確保您resolv.conf的定義正確

完整的執行緒在:

nodfs參考:

引用自:https://unix.stackexchange.com/questions/487776