我有一个经销商 Web 服务器,我正在将其迁移到一台新机器上。源服务器所有者提供了一个用户(我们称之为用户 A),该用户对其他用户具有 sudo 访问权限,但对 root 没有权限。我的用户没有对我需要拉取的文件的直接文件访问权限,但我可以对正确的用户(对于我们的示例是用户 B)执行 sudo 并获取正确的内容。
我有一个从我的用户到目标机器的 ssh 密钥设置,但这显然不会传递给其他用户。我可以在 sudo 作为单个内容用户时传递目标服务器的密码,但对于要移动的数据量和要 sudo 的用户数量,这非常繁琐。
所以,我的问题是,有没有办法可以访问属于用户 B 的内容,我有 sudo 访问权限但没有直接访问权限,但是验证我的 rsync ssh 连接并以用户 A(我的 linux 用户)身份运行完整的 rsync 命令?
您可以使用选项指定用于rsync在远程端运行的命令--rsync-path,并且该命令可以sudo带有选项。例如:
rsync -a --rsync-path "sudo -u userB rsync" userA@host:/path/to/stuff/ /local/stuff/
Run Code Online (Sandbox Code Playgroud)
当然,您需要确保您的 sudoers 文件设置为提供对 rsync 命令的 NOPASSWD 访问。
| 归档时间: |
|
| 查看次数: |
6619 次 |
| 最近记录: |