我想同步目录/var/sites/example.net/
从远程计算机到本地计算机上同一路径的目录。
远程计算机仅使用密钥而不是密码来验证 SSH 连接。
在我的本地计算机上,我在 ~/.ssh/config 中设置了一个别名,以便我可以轻松运行ssh myserver
进入。
我想rsync -a myserver:/var/sites/example.net/ /var/sites/example.net/
但它失败了,因为我的本地用户没有编辑本地目录 /var/sites/example.net/ 的权限。
如果我尝试sudo rsync -a myserver:/var/sites/example.net/ /var/sites/example.net/
(只需添加 sudo),我可以修复本地权限问题,但随后遇到不同的问题 - 我的本地 root 用户看不到正确的 ssh 密钥或 ssh 别名。
有没有办法通过修改此 rsync 命令来完成此文件同步?我想避免更改任何其他内容(例如,不更改文件权限或 ssh 设置)
尝试这个:
sudo rsync -e "sudo -u localuser ssh" -a myserver:/var/sites/example.net/ /var/sites/example.net/
这运行rsync
作为 root,但是-e
标志原因rsync
to run ssh
作为您的本地用户(使用sudo -u localuser
), 所以ssh
命令有权访问必要的凭据。 Rsync 本身仍然以 root 身份运行,因此它具有必要的文件系统权限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)