我有一个运行 CIFS 共享的 FreeNAS 11.0-U4 机器,我通常通过 autofs 挂载从 Linux 系统访问该共享。几天前,我注意到挂载行为异常,显示所有具有无用 DOS 样式权限 ( rwxr-xr-x
) 的文件,而不是实际的底层模式位。
我决定亲自尝试一下。我运行mount.cifs
命令:
sudo mount.cifs -o username=theuser,uid=theuser,gid=theuser //theserver/theuser /mnt
然后我mount
不带任何争论地跑去看看实际的安装是什么样子的。这回来了:
//theserver/theuser on /mnt type cifs (rw,relatime,vers=3.0,cache=strict,username=theuser,domain=,uid=1000,forceuid,gid=1000,forcegid,addr=10.XX.XX.XX,file_mode=0755,dir_mode=0755,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
请特别注意 、 和 的存在nounix
(这将禁用所有 UNIX 扩展支持),file_mode
所有dir_mode
这些组合起来对所有内容强制使用 0755 权限。
我没有指定这些选项,而且我很确定它们没有潜伏在配置文件中的某个地方,所以我很困惑为什么它们会出现。这种设置过去很有效——当然足以将文件归档到 NAS,而无需确定每个文件都是可执行的。
在Linux方面,mount.cifs
各种samba组件的版本都是4.6.7。在 FreeNAS 方面,v11.0-U4 运行的是 samba 4.6.8。
这些选项从哪里来?我需要在服务器端调整一些东西吗?我怎样才能让事情恢复正常呢?
答案1
在内核升级中,将 SMB 协议的默认版本更改为 3.0,该版本不支持 Unix 扩展。如果您想使用 Unix 扩展,请附加到您的选项“vers=1.0”。