Rsync:以 root 身份复制后,将所有者更改为 Web 用户

Rsync:以 root 身份复制后,将所有者更改为 Web 用户

我似乎偶尔会遇到这个问题:

serverA 资产:

  • 归用户所有:apache
  • (没有“ftp”用户存在)

serverB 资产:

  • 归用户所有:ftp
  • (Apache 用户存在,但未使用)

我以 root 身份连接到服务器 A,然后以 root 身份通过 ssh rsync 到服务器 B。此后,服务器 B 上的所有资产均归 root 或 apache 所有,具体取决于我是否告诉 rsync 保留文件在服务器 A 上的所有权。

有没有人有技巧可以将 serverB 上 rsync 文件的所有权更改为其他用户,该用户不是 serverA 上的所有者,也不是发出 rsync 命令的用户?serverB 上生成的文件将归 'ftp' 用户所有。

过去,我总是只是在命令后面跟着一个递归 chown,但我想找到一种在 rsync 中执行此操作的方法,或者将其归结为单个命令。

答案1

尝试设置RSYNC_RSH"ssh -o 'User apache'"
和/或使用--rsync-path='su apache -c rsync'
修补 rsync 源支持设置任意用户。

答案2

ftp您可以通过在命令行中规定用户来最简单地完成此操作rsync

# rsync -av /serverA/source/path/ ftp@serverB:/serverB/destination/path/

系统将提示您ftp输入账户密码serverB

/serverB/destination/path/目标路径中的文件serverB必须可由用户写入ftp

相关内容