我了解保留 rsync 的权限。 但是,就我而言,我的本地计算机没有网络服务器所需的文件的用户。因此,当我进行 rsync 时,我需要所有者和组在网络服务器上是 apache,但在本地计算机上是我的用户名。有什么建议吗?
我想澄清并准确解释我需要做什么。
我的个人计算机:名为“home”,用户帐户为“michael” 我的网络服务器:名为“server”,用户帐户为“remote”,用户帐户为“apache”
当前情况:我的网站位于“home”,所有者为“michael”,位于“server”,所有者为“apache”。 “home”需要使用用户“michael”,“server”需要使用用户“apache”
任务:将“home”上的我的网站同步到“服务器”,但所有文件的所有者均为“apache”和组“apache”
问题:rsync 将保留权限、所有者和组;但是,我需要所有文件都属于 apache 的所有者。我知道不保留所有者会将用户的所有者放在“服务器”上,但由于该用户是“远程”,因此它使用该用户而不是“apache”。我无法与用户“apache”进行 rsync(这很好),但我不愿意公开一个安全风险。
我对如何解决的唯一想法:在每次rsync
之后手动chown -R
和chgrp -R
,但它是一个巨大的系统,这需要很长时间,特别是因为它即将投入生产。
有人知道怎么做吗?
我当前用于rsync
的命令:
rsync --progress -rltpDzC --force --delete -e "ssh -p22" ./ remote@server.com:/website
最佳答案
如果您有权访问 rsync v.3.1.0 或更高版本,请使用 --chown 选项:
rsync -og --chown=apache:apache [src] [dst]
更多信息来自类似问题的答案:ServerFault: Rsync command issues, owner and group permissions doesn´t change
关于unix - 如何更改 rsync 的所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11131477/