我正在设置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
对于在远程计算机中使用sudo
with ,您可以使用 来调用它,但要注意,您可以通过从文件中删除来跳过它。rsync
--rsync-path="sudo rsync"
require TTY
Defaults requiretty
sudoers
如果您想更改不属于您的任何内容的权限,则必须使用您sudo
不拥有的权限root
或者有一种不同的方式,比如设置 a setuid
on chmod
,chown
那么任何人都可以将chmod
,chown
作为 a运行root
,但这将是可怕。