我有带有 samba 共享的服务器,它由 CIFS 安装在我的客户端计算机上/media/photos.
/media/photos
所有权是root:samba
,我的用户也是 samba 组的成员。在服务器上的 smb.conf 中,我有:
force create mode = 0664
force directory mode = 2775
force security mode = 0664
force directory security mode = 2775
所以/media/photos
目录有权限drwxrwxr-x
。我在这个目录中创建的每个文件都有权限rw-rw-r--
我可以创建目录。我可以创建文件。我可以进入创建的目录并在那里创建文件。
我无法复制目录树。当我发出:
cp -r /home/frank/photos/Tymek/ /media/photos
目录“Tymek”已创建,但里面没有文件。我收到类似的消息
cp: cannot create regular file `/media/photos/Tymek/usg_10.bmp': Permission denied
即使我可以毫无问题地进入 Tymek 目录并创建文件。
这样的命令有效:
cp -r /home/frank/photos/Tymek/ /media/photos/
(最后添加斜线)
但是 Nautilus 似乎使用第一种方法,它在复制整个目录时有问题,我需要它。
这可能会有所帮助,OS X 10.5 与我们的 Samba 有类似的问题,直到应用了一组神奇的 smb.conf 权限,从而停止了同样的无权限问题。尝试用这些替换/修改您的值:
我不能保证这会解决您的问题,但需要进行大量调整才能为这些 Mac 客户端解决相同的问题。
听起来很像我也遇到的问题。请检查当您复制仅包含文件且不包含其他子文件夹的文件夹并且该文件夹在目标上不存在时,您首先会收到“权限被拒绝”,但之后您可以毫无问题地复制它。例如
这已在Ubuntuforums 上讨论过: smbmount: cannot create regular file。我在那里张贴为“xrat”。我仍然认为这是一个错误(我只是还没有时间报告它)。添加
noperm
到安装选项会有所帮助。但这是一个肮脏的解决方法。2009-11-17更新:已发现错误报告。向发现者瓦拉纳西致敬。
如果您愿意深入挖掘,这里有另一个建议:查看您的 Samba 服务器上的文件系统是否使用
noatime
或挂载relatime
。这可能是相关的。我很想知道您的服务器是否属于这种情况。在旧版本的 samba 下,文件权限用户和 samba 用户是有区别的。您使用的是什么版本的 Samba?您是如何创建 samba 用户帐户的?您在 CIFS 服务器上将您的 samba 用户添加到哪些 samba 组?
最后,当你在做 cp -r 并创建了 Tymek 目录时,它是用什么权限创建的?
在 Nautilus 中执行此操作是否有特定要求?如果没有,为什么不使用 RSync 呢?对于这种工作,我发现它比 cp 更可靠。
当您挂载 CIFS 挂载时,它会使用您用于挂载的帐户的权限进行挂载。
这意味着权限来自服务器而不是本地权限。
您挂载的帐户应在服务器端添加到组 samba。
在 fstab 或挂载时设置 uid= 和 gid= 不会用本地权限覆盖服务器端权限。