微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用rsync + ssh +公钥作为与ssh密钥所有者不同的用户同步本地和远程目录

目标是通过ssh同步本地和远程文件夹。

我目前的用户是user1 ,我有一个密码的访问设置通过SSH到服务器server1 。 我想通过rsync实用程序将本地文件夹与server1上的文件夹同步。 通常我会跑:

rsync -rtvz /path/to/local/folder server1:/path/to/remote/folder

ssh访问按预期工作, rsync能够通过ssh连接,但是它返回“Permission denied”错误,因为在server1上 ,文件夹/path/to/remote/folder由user2 : user2拥有。 文件夹的文件权限不允许其他人修改。 user1是server1上的sudoer,所以sudo su - user2在ssh会话期间工作。 如何改变rsync切换到用户ssh ed到服务器?

将user1添加到组user2不是一个选项,因为服务器上的所有用户/组pipe理都是自动完成的,并且每隔X分钟从中央回购站复制,而我没有访问该回执。

如何为所有用户注册一个COM对象

无法编辑我拥有写入权限的只读文件,也无法更改其权限; 如何重新安装其父文件夹?

function.fopen:未能打开stream:在@R_404_6278@中的权限被拒绝

SVN服务器仅以root身份运行时允许提交

设置setuid位后,程序无法加载

与更改目标文件夹的权限/所有权相同:定期自动更新所有权限。

我想到的可能的解决scheme是将本地文件夹与服务器上user1拥有的临时中间远程文件夹同步,然后将两个远程文件夹同步为user2的脚本。

search一个更短,更漂亮的解决scheme并没有取得任何成功。

检查两个NTAccount对象的相等性

Android Studio无法更新

Linux内核:设置通过create_device()创build的/ dev文件的权限

WebSphere MQ Windows客户端到Linux服务器的用户权限

如何复制文件并赋予它们目的地目录的权限

我没有尝试过,但如何使用rsync的“ – rsync-path”选项?

rsync -rtvz --rsync-path='sudo -u user2 rsync' /path/to/local/folder server1:/path/to/remote/folder

解决权限问题,您需要通过以user2远程登录的SSH会话运行rsync:

rsync avz -e 'ssh -i privatekeyfile' /path/to/local/folder/ user2@server1:/path/to/local/folder

以下答案解释了如何设置SSH密钥。

蚂蚁,从远程机器下载文件

为user1设置无密码访问权限以访问user2 @ server1 ,然后执行

rsync -rtvz /path/to/local/folder user2@server1:/path/to/remote/folder

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐