目标是通过ssh同步本地和远程文件夹.
我当前的用户是user1,我通过ssh对服务器server1进行了无密码访问设置.
我想通过rsync实用程序将本地文件夹与server1上的文件夹同步.
通常我会跑:
rsync -rtvz /path/to/local/folder server1:/path/to/remote/folder
ssh访问按预期工作,rsync能够通过ssh连接,但它返回“权限被拒绝”错误,因为在server1上文件夹/ path / to / remote /文件夹归user2所有:user2.该文件夹的文件权限不允许其他任何人更改.
user1是server1上的sudoer,所以sudo su – user2在ssh会话期间工作.
如果用rssh到服务器时如何更改rsync以切换用户?
将user1添加到组user2不是一个选项,因为服务器上的所有用户/组管理都是自动完成的,并且每X分钟从中央仓库复制一次,我无法访问.
对于更改目标文件夹的权限/所有权也是如此:它会定期自动更新,并重置所有权限.
我想到的可能的解决方案是一个脚本,它将本地文件夹与服务器上user1拥有的临时中间远程文件夹同步,然后将两个远程文件夹同步为user2.
谷歌搜索更短,更漂亮的解决方案并没有取得任何成功.
最佳答案
我自己没试过,但是如何使用rsync的’–rsync-path’选项呢?
rsync -rtvz --rsync-path='sudo -u user2 rsync' /path/to/local/folder server1:/path/to/remote/folder
相关文章
- ssh - 如何通过同一本地用户的密钥登录,使用两个不同的用户名登录同一个远程服务器?
- rsync远程文件通过SSH连接到我的本地计算机,使用本地端的sudo权限和我的个人SSH密钥
- SSH公钥登录:两个不同的密钥和SSH_AUTH_SOCK行为
- ubuntu - 如何仅为远程访问设置SSH无密钥密钥身份验证,允许本地用户使用密码
- 当使用Git或SSH拷贝/远程登录等时,我们是否应该重新使用相同的SSH密钥或每次都创建新的密钥?
- linux - 我可以使用SSH密钥身份验证登录到具有不同用户名的远程系统吗?
- 同一目录中的私钥和公钥会导致ssh失败
- 使用php脚本中的rsync同步本地和远程文件夹,而无需输入密码