rsync 内容作为 sudo 用户
rsync content as sudo user
我有一个经销商网络服务器,我正在将其迁移到一台新机器上。源服务器所有者提供了一个用户(我们称其为用户 A),该用户具有对其他用户的 sudo 访问权限,但没有对 root 用户的访问权限。我的用户没有对我需要提取的文件的直接文件访问权限,但我可以向正确的用户(我们的示例中的用户 B)执行 sudo 并获取正确的内容。
我设置了一个从我的用户到目标机器的 ssh 密钥,但这显然不会传递给其他用户。我可以在作为个人内容用户执行 sudo 时传递目标服务器的密码,尽管对于要移动的数据量和要 sudo 到的用户数量来说,这非常乏味。
所以,我的问题是,有没有一种方法可以让我访问属于用户 B 的内容,我有 sudo 访问权限但不能直接访问,但需要验证我的 rsync ssh 连接和 运行 完整的 rsync作为用户 A 命令,我的 linux 用户?
你能ssh到远程服务器吗?如果是:登录到远程服务器并 运行:
sudo -u user_with_sudo \
rsync -irltc --stats --info=progress2 /remote/server/files/ \
yourlogin@your.local.server.com:/home/user/download_dir/
您可以使用 --rsync-path
选项指定远程端 运行 rsync
使用的命令,并且该命令可以是 sudo
选项。例如:
rsync -a --rsync-path "sudo -u userB rsync" userA@host:/path/to/stuff/ /local/stuff/
当然,您需要确保您的 sudoers 文件已设置为提供对 rsync 命令的 NOPASSWD 访问权限。
我有一个经销商网络服务器,我正在将其迁移到一台新机器上。源服务器所有者提供了一个用户(我们称其为用户 A),该用户具有对其他用户的 sudo 访问权限,但没有对 root 用户的访问权限。我的用户没有对我需要提取的文件的直接文件访问权限,但我可以向正确的用户(我们的示例中的用户 B)执行 sudo 并获取正确的内容。
我设置了一个从我的用户到目标机器的 ssh 密钥,但这显然不会传递给其他用户。我可以在作为个人内容用户执行 sudo 时传递目标服务器的密码,尽管对于要移动的数据量和要 sudo 到的用户数量来说,这非常乏味。
所以,我的问题是,有没有一种方法可以让我访问属于用户 B 的内容,我有 sudo 访问权限但不能直接访问,但需要验证我的 rsync ssh 连接和 运行 完整的 rsync作为用户 A 命令,我的 linux 用户?
你能ssh到远程服务器吗?如果是:登录到远程服务器并 运行:
sudo -u user_with_sudo \
rsync -irltc --stats --info=progress2 /remote/server/files/ \
yourlogin@your.local.server.com:/home/user/download_dir/
您可以使用 --rsync-path
选项指定远程端 运行 rsync
使用的命令,并且该命令可以是 sudo
选项。例如:
rsync -a --rsync-path "sudo -u userB rsync" userA@host:/path/to/stuff/ /local/stuff/
当然,您需要确保您的 sudoers 文件已设置为提供对 rsync 命令的 NOPASSWD 访问权限。