我在 OS X 上进行开发,而我的实际代码位于我已挂载为本地共享 (smbfs) 的远程 CentOS 机器上。我的一些文件未标记为可写,当我编辑它们时需要切换。在终端中,如果我转到 smbfs 挂载下的任何位置并执行 chmod 以任何事物它从来不会成功,我必须通过 SSH 连接到服务器才能切换权限。有什么想法可以解释为什么它不会成功吗?
真的很奇怪:使用 PhpStorm 编辑此共享中的文件无法将权限切换为只读文件的可写权限,但是 Eclipse 可以毫无问题地切换它们。
答案1
CIFS (SMB) 主要是一种 Windows 协议,不支持 POSIX 访问权限,除非启用“Unix 扩展”。显然,smbfs
文件系统不支持此功能。
在 Linux 上,较新的
cifs
文件系统模块是 的一部分smbclient
。它支持 POSIX 文件权限,包括 ACL。(不过可能不适用于 OS X。)或者,您可以使用 SFTP(
sshfs
通过 MacFUSE)来访问文件。SFTP 是 SSH 文件传输协议。您已经拥有可用的 SSH,因此无需在服务器端进行任何设置。
答案2
如果不是 grawity 所说的,则可能是客户端和服务器之间的数字用户 ID 不匹配。您以什么身份登录 Mac OS X 的帐户的数字用户 ID 是什么id -u
?当您通过 SMB 连接时,您在 Cent OS 框中使用的帐户的数字用户 ID 是什么?