a c*_*der 0 permissions sudo rsync
我正在设置rsync
将文件从 ServerA 传输到 ServerB,并且需要保留时间戳和权限。他们在这里的关键是文件由与执行文件传输的帐户不同的帐户拥有。
rsync
使用以下示例传输文件:
rsync -a /colorschemes/ acoder@bu.my.box.net:/colorschemes/ --delete
Run Code Online (Sandbox Code Playgroud)
该-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)
Run Code Online (Sandbox Code Playgroud)
在远程系统上,当尝试手动设置文件权限时,acoder 帐户有类似的错误:
[acoder@bu ~]$ chown apache:codingteam /colorschemes/946
chown: changing ownership of ‘/colorschemes/946’: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
不过,这可以正常工作:
[acoder@bu ~]$ sudo chown apache:codingteam /colorschemes/946
Run Code Online (Sandbox Code Playgroud)
有没有办法让远程 rsync 使用 sudo?
对于在远程机器中使用sudo
with rsync
,您可以使用with调用它,--rsync-path="sudo rsync"
但要注意require TTY
,您可以通过Defaults requiretty
从sudoers
文件中删除来跳过它。
如果您想更改不属于您的任何内容的权限,则必须使用sudo
如果您不是root
或者是有不同的方式,如设置一个setuid
上chmod
,chown
那么任何一个可以运行chmod
,chown
作为一个root
,但是这将是可怕的。