目标设备上的 sudo rsync
sudo rsync on target devices
早上好,
我目前遇到一个问题,我无法在 Whosebug 或 google 搜索中找到答案,而且我还没有解决。
我正在尝试在目标设备上以 sudo 用户身份使用 rsync。
问题:
我不拥有目标设备,所以我无法更改 ssh/sudo 权限。
我没有根用户的凭据
我有 sudo 用户的凭据
交易必须以编程方式完成(最少的用户输入)
我尝试过的:
rsync -a --rsync-path "sudo rsync" USER@HOST:/root/FILE ./
Issue: "A terminal is required to read password"
好的,让我们尝试通过标准输入传递它
rsync -a --rsync-path "echo 'PASSWORD' | sudo -S rsync" USER@HOST:/root/FILE ./
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
Issue: rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.3]
rsync: connection unexpectedly closed (4 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-52.200.1/rsync/io.c(453) [receiver=2.6.9]
你们对我能做的事情还有其他想法吗?
我知道回显密码不是最佳做法,但是在我连接的服务器没有与 root 用户进行密钥交换并且我无法更改 SUDOPASS 的情况下,我没有很多其他选择设置。
最后这一切都被插入到一个 Python 脚本中,所以如果有更好的 pythonic 方法使用 rsync 作为 sudoer,请告诉我。
如果你的远程 sudo 配置为一旦输入密码,一段时间内不需要再次输入,那么你可以试试这个:
rsync -a --rsync-path "echo 'PASSWORD' | sudo -S date >&/dev/null; sudo rsync" \
USER@HOST:/root/FILE ./
要在远程添加 --debug=CMD2
上调试正在执行的命令 运行。
如果您的遥控器不理解 bash 语法 >&/dev/null
,请使用更长的 >/dev/null 2>/dev/null
.
早上好,
我目前遇到一个问题,我无法在 Whosebug 或 google 搜索中找到答案,而且我还没有解决。
我正在尝试在目标设备上以 sudo 用户身份使用 rsync。
问题:
我不拥有目标设备,所以我无法更改 ssh/sudo 权限。
我没有根用户的凭据
我有 sudo 用户的凭据
交易必须以编程方式完成(最少的用户输入)
我尝试过的:
rsync -a --rsync-path "sudo rsync" USER@HOST:/root/FILE ./
Issue: "A terminal is required to read password"
好的,让我们尝试通过标准输入传递它
rsync -a --rsync-path "echo 'PASSWORD' | sudo -S rsync" USER@HOST:/root/FILE ./
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
Issue: rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.3]
rsync: connection unexpectedly closed (4 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-52.200.1/rsync/io.c(453) [receiver=2.6.9]
你们对我能做的事情还有其他想法吗?
我知道回显密码不是最佳做法,但是在我连接的服务器没有与 root 用户进行密钥交换并且我无法更改 SUDOPASS 的情况下,我没有很多其他选择设置。
最后这一切都被插入到一个 Python 脚本中,所以如果有更好的 pythonic 方法使用 rsync 作为 sudoer,请告诉我。
如果你的远程 sudo 配置为一旦输入密码,一段时间内不需要再次输入,那么你可以试试这个:
rsync -a --rsync-path "echo 'PASSWORD' | sudo -S date >&/dev/null; sudo rsync" \
USER@HOST:/root/FILE ./
要在远程添加 --debug=CMD2
上调试正在执行的命令 运行。
如果您的遥控器不理解 bash 语法 >&/dev/null
,请使用更长的 >/dev/null 2>/dev/null
.