mal*_*lat 6 fedora cd-command cifs
出于某种原因,我无法 cd 进入我有权访问的特定远程目录,它失败了:
$ cd Data\ Services/
-bash: cd: Data Services/: Invalid argument
Run Code Online (Sandbox Code Playgroud)
这是我安装它的方式:
$ 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/: *********
Run Code Online (Sandbox Code Playgroud)
我可以从我的 Windows 8 笔记本电脑(相同的用户名/密码)访问它。
以供参考:
$ ls -ald "Data Services"
drwx--x--x 2 myuser myuser 0 Dec 13 09:21 Data Services
Run Code Online (Sandbox Code Playgroud)
至少在我这边,这个快捷方式似乎被视为一个目录:
$ find Data\ Services -type d
Data Services
find: ‘Data Services’: Invalid argument
Run Code Online (Sandbox Code Playgroud)
因此,我不能用它做太多事情:
$ cat Data\ Services
cat: Data Services: Invalid argument
Run Code Online (Sandbox Code Playgroud)
甚至
$ hexdump Data\ Services
hexdump: Data Services: Invalid argument
hexdump: all input file arguments failed
Run Code Online (Sandbox Code Playgroud)
如下所示,我再次尝试使用noperm
:
$ sudo mount -t cifs //big.acme.corp/network/ ~/z -o username=myuser,domain=mydomain,uid=$(id -u),gid=$(id -g),noperm
Run Code Online (Sandbox Code Playgroud)
这给了我:
$ 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)
Run Code Online (Sandbox Code Playgroud)
这并没有改变任何东西:
$ strings Data\ Services
strings: Data Services: Invalid argument
Run Code Online (Sandbox Code Playgroud)
实际的根本问题是在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
[...]
Run Code Online (Sandbox Code Playgroud)
更新我resolve.conf
的:
search acme.corp
Run Code Online (Sandbox Code Playgroud)
到:
search acme.corp mydoma01.acme.corp
Run Code Online (Sandbox Code Playgroud)
我终于可以mount -t cifs
在没有'nodfs'
选项的情况下打电话了。这些症状不再是错误,而只是提供信息:
$ cd Data Services
CIFS VFS: BAD_NETWORK_NAME: \\MYSERV13\network
[...]
Run Code Online (Sandbox Code Playgroud)
Data Services
我终于可以毫无问题地访问内容了。
综上所述:
nodfs
选项resolv.conf
定义正确完整线程位于:
nodfs参考: