smbfs 共享上的 rsync 权限错误

smbfs 共享上的 rsync 权限错误

我设置了一个 nas,正在尝试将文件 rsync 到它。它对我自己的文件来说工作正常

$ id dogmatic69 
uid=1000(dogmatic69) gid=1000(dogmatic69) groups=1000(dogmatic69),4(adm),20(dialout),24(cdrom),33(www-data),46(plugdev),110(lpadmin),111(sambashare),112(admin)

问题文件属于 www-data 用户

$ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)

运行时出现大量错误,例如:

rsync: failed to set permissions on "/some/file": Operation not permitted (1)

我尝试为两个用户设置共享,但问题仍然存在

sudo smbmount //server/development development -o credentials=/home/dogmatic69/.smbpassword,uid=33,gid=33

sudo smbmount //server/development development -o credentials=/home/dogmatic69/.smbpassword,uid=1000,gid=1000

所有源文件均归 www-data 所有并具有 g+rw 权限,因此用户 dogmatic69 可以查看/编辑它们。

$ ls -al
total 956
drwxrwxr-x 11 www-data www-data   4096 2012-06-21 14:09 .
drwxr-xr-x 13 root     root       4096 2012-06-26 11:44 ..
drwxrwxr-x 17 www-data www-data   4096 2012-06-21 14:10 folder1
drwxrwxr-x  7 www-data www-data   4096 2010-10-11 02:24 folder2
-rw-rw-r--  1 www-data www-data 510649 2011-05-26 20:48 file.html
-rw-rw-r--  1 www-data www-data  78792 2011-05-26 20:15 other.html

您知道如何设置吗?这样就不会出现错误,并且还能保持所有者详细信息正确。

编辑:

托管文件的服务器是基于 Linux 的 NAS,它是一个简单的盒子,没有 ssh,可以选择 NFS 或 SMBFS。我玩过 NFS,但发现它很糟糕,有些人说它已经过时了。

答案1

从 rsync 命令行中删除所有用于设置所有权的选项。Rsync 正在尝试设置权限,但您的 SMB 服务器显然不支持该功能。

如果//server/development是 Windows 机器,那么尝试设置所有权权限几乎永远不会奏效。如果是 Samba 主机,则需要确保服务器上启用了 CIFS UNIX 扩展,并且如果您希望能够通过 SMB 使用 unix 样式权限,则需要使用mount.cifsnot 。smbmount

答案2

这其实很简单。我对 rsync 选项做了更多的研究,并rsync -a结合了一些选项。其中之一是-O维护所有权。请注意,此选项要求使用 root 身份运行 rsync。

只需在命令开头添加 sudo 即可解决问题。

相关内容