![如何通过ssh写入文件](https://linux22.com/image/84170/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87ssh%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6.png)
我想在B机下写一个文件
/home/test
其权限为root:root
和rwxr-xr-x
。
我在机器 B 上有一个名为 的帐户testUser
。当使用该用户登录到机器 B 时,我可以使用sudo
在/home/test
.
但是现在我想ssh
在机器 A 上使用命令来命令在viatestUser@MachineB
下写入文件,但在使用将文件复制到时收到消息。我想避免输入密码,以便可以使用脚本完成这些操作。有什么办法可以解决吗?/home/test
ssh
Permission denied
scp
/home/test
顺便说一句,我已将 ssh-key 设置为无需密码验证即可登录。
使用setuid
B机器上的可执行文件在B机器下写入文件是/home/test
一个好方法吗?
答案1
您可以将 sudo 配置为允许在没有密码的情况下执行该命令cp foo /home/test/
,然后使用以下命令:
ssh testUser@MachineB 'cat > foo && sudo mv foo /home/test/' < my_file
通过 ssh 将数据传送到另一端您选择的命令是这里的一般技巧。您可能可以找到十几种其他方法来使用此方法的变体来实现您的目标。