Samba通过CIFS,与复制目录树有关的问题

我有samba共享的服务器,它由CIFS在/media/photos.下的客户机上装载/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 。 我在这个目录中创build的每个文件都有权限rw-rw-r--

我可以创build目录。 我可以创build文件。 我可以进入创build的目录并在那里创build文件。

我不能复制目录树。 当我发出:

 cp -r /home/frank/photos/Tymek/ /media/photos 

目录“Tymek”被创build,但里面没有文件。 我收到类似的消息

 cp: cannot create regular file `/media/photos/Tymek/usg_10.bmp': Permission denied 

即使我可以进入Tymek目录并创build文件没有任何问题。

这样的命令有效:

 cp -r /home/frank/photos/Tymek/ /media/photos/ 

(在最后加了斜线)

但鹦鹉螺似乎使用第一种方法,它有复制整个目录的问题,我需要它。

这可能会有所帮助,OS X 10.5与我们的Samba有类似的问题,直到应用一组神奇的smb.conf权限,停止了同样的无权限问题。 尝试用这些replace/修改你的值:

  create mask = 0664 force create mode = 0664 security mask = 0000 force security mode = 0664 directory mask = 0775 force directory mode = 0775 directory security mask = 0000 force directory security mode = 0775 

我不能保证这将解决你,但它花了很多调整,以解决这些Mac客户端的相同问题。

听起来像我也有一个问题。 请检查,当您复制一个文件夹只包含文件,没有其他的子文件夹和文件夹不存在的目的地,你首先得到一个“权限被拒绝”,但你可以复制它没有问题之后。 例如

 $ mkdir testdir $ touch testdir/somefile $ rm -r /media/photos/testdir $ cp -r testdir /media/photos cp: cannot create regular file `/media/photos/testdir/somefile': Permission denied $ cp -r testdir /media/photos $ # same command works 

Ubuntuforums已经讨论过这个问题:smbmount:无法创build常规文件 。 我已经在那里张贴“xrat”。 我仍然认为这是一个错误(我只是没有时间来报告它)。 添加noperm到挂载选项有帮助。 但这是一个肮脏的解决方法。

更新2009年11月17日 :发现了一个错误报告 。 荣誉发现者瓦拉纳西 。

如果您愿意深入研究,可以参考另一个build议:查看您的Samba服务器是否使用noatimerelatime挂载文件系统。 这可能是相关的。 我很想听听你的服务器是否属于这种情况。

在旧版本的samba下,文件权限用户和samba用户是有区别的。 你使用的是什么版本的Samba? 你是如何创build你的samba用户帐户的? 什么samba组你添加你的samba用户在CIFS服务器上?

最后,当你正在做cp -r和Tymek目录时,它创build了什么权限?

鹦鹉螺号这样做是否具体要求? 如果没有,为什么不使用RSync呢? 我觉得这种工作比cp更可靠。

当您安装CIFS安装时,安装时使用您用来安装的帐户的权限。

这意味着权限是从服务器而不是本地的。

您使用的帐户应该在服务器端添加到组samba。

在fstab或挂载时设置uid =和gid =不会覆盖具有本地权限的服务器端权限。