在远程 rsync 服务器上强制 sudo

在远程 rsync 服务器上强制 sudo

我正在设置rsync将文件从 ServerA 传输到 ServerB,并且需要保留时间戳和权限。这里的关键是文件的所有者与执行文件传输的帐户不同。

rsync使用以下示例传输文件:

rsync -a /colorschemes/ [email protected]:/colorschemes/ --delete

-a标志会产生以下类型的错误:

rsync: failed to set times on "/colorschemes/946/ex": Operation not permitted (1)
rsync: failed to set permissions on "/colorschemes/946/ex/blue.pdf": Operation not permitted (1)

在远程系统上,acoder 帐户在尝试手动设置文件权限时出现类似错误:

[acoder@bu ~]$ chown apache:codingteam /colorschemes/946
chown: changing ownership of ‘/colorschemes/946’: Operation not permitted

不过,这工作正常:

[acoder@bu ~]$ sudo chown apache:codingteam /colorschemes/946

有没有办法让远程rsync使用sudo?

答案1

对于在远程计算机中使用sudowith ,您可以使用 来调用它,但要注意,您可以通过从文件中删除来跳过它。rsync--rsync-path="sudo rsync"require TTYDefaults requirettysudoers

如果您想更改不属于您的任何内容的权限,则必须使用您sudo不拥有的权限root

或者有一种不同的方式,比如设置 a setuidon chmodchown那么任何人都可以将chmod,chown作为 a运行root,但这将是可怕

相关内容