我的服务器上有一个目录,多个用户使用 rsync 将数据复制到该目录。所有用户都使用这些选项-a -h -v
。所有用户都位于用于此目录的同一组中。所有用户都通过 NFS 挂载共享并在“本地模式”下使用 rsync。同步 rsync 的输出时显示几个错误:
rsync: failed to set permissions on <path>: Operation not permitted (1)
执行 rsync 的用户是在这些文件上发生的情况不是主人。此行为是正确的,因为只有所有者才能更改权限。我想防止错误被发布到日志中,因为很难检测同步中的“真正”错误。如何防止 rsync 对执行用户不是所有者的文件设置权限?
这个问题类似于:仅当文件归用户所有时才使用 rsync 设置权限尽管我不使用--chmod
选项,并且此问题仅适用于现有文件。
编辑1:我的解释是,这取决于所有者。显示此错误的所有文件均归其他人所有。另外,我的机器上不存在该用户。因此,当我通过 检查目录时ls -al
,我只看到 UID,而不是用户名。这可能是一个问题吗?服务器和所有客户端上的 UID 都是相同的。
编辑 2:添加有关 rsync 本地模式的信息
答案1
谢谢你们的评论。在使用建议参数进行实验时,我发现了此错误消息的原因。我的问题没有包含对此至关重要的信息,因此不可能猜测原因。
我重新检查了所有目录,发现文件不同步。显示错误的文件在我的本地副本上由我拥有,并由服务器上的另一个人拥有。因此,我的 rsync 进程读取本地副本的所有权,并想要复制 (NFS) 服务器拒绝的用户权限。