我有一台 Windows 7 主机,上面有一个 VirtualBox 下的 CentOS 6 客户机。
我有一个使用 CIFS 与 Linux 客户机共享的 Windows 目录。
到目前为止一切都运行良好,直到我意识到所有chmod
操作都会产生:
chmod:更改“x”的权限:操作不允许
这是可以理解的,但我的问题是,一些我无法控制的工具试图chmod
为我归档,结果失败了。
是否有可能允许但忽略所有chmod()
调用都基于 CIFS 挂载?请注意,这些调用是通过编程语言而不是命令行chmod
实用程序进行的。
编辑:mount.cifs 手册说(强调我的):
核心 CIFS 协议不提供文件和目录的 unix 所有权信息或模式。因此,文件和目录通常看起来归 uid= 或 gid= 选项设置的任何值所有,并且将权限设置为挂载的默认 file_mode 和 dir_mode。尝试通过 chmod/chown 更改这些值将返回成功但没有效果。
这正是我想要的行为,那么为什么它对我来说不起作用呢?
答案1
找到了:noperm
mount 参数的作用正是如此:
//192.168.56.1/www /mnt/www cifs noperm,username=www,password=xxx, ...
请注意,mount -a
不应用该参数,您必须重新启动才能使其工作。
我花了很多时间才弄清楚这一点。
现在chmod
运行良好,命令没有产生任何错误,只是被忽略。
答案2
尝试添加 exec 选项。我相信以非 root 用户身份挂载将关闭 exec。