linux – 如何在bash中一起使用ssh和sudo?
发布时间:2020-05-24 02:44:17 所属栏目:Linux 来源:互联网
导读:我无法找到描述此特定方案的问题. 我正在尝试执行一个非常基本的bash脚本来从多台机器上检索日志记录.我在本地运行脚本,但是需要通过ssh访问外部机器,以及在该机器上访问特权用户sudo … ssh myuser@machine.netsudo su - privledged_usercat logs file.txt
|
我无法找到描述此特定方案的问题. 我正在尝试执行一个非常基本的bash脚本来从多台机器上检索日志记录.我在本地运行脚本,但是需要通过ssh访问外部机器,以及在该机器上访问特权用户sudo … ssh myuser@machine.net sudo su - privledged_user cat logs > file.txt 使用sh -x运行它会显示bash卡在’ssh’行上.所以我尝试修改它: ssh myuser@machine.net sudo su - privledged_user cat logs > file.txt 这似乎也无限期地停滞不前.这个问题有更好的解决方案吗?从我所知道的,我没有看到使用sudo su的方法…… 谢谢你的帮助! 解决方法我在当前环境中实现这一点的方法是使用-t标志运行ssh,强制tty分配,然后在其中运行sudo -u root,如下所示:ssh -t hostname << EOF
command1
sudo -u root command2
sudo -u otheruser "command3 | command4"
sudo -u root /bin/bash -c "command5; command6; command7"
command8 && ( sudo -u otheruser /bin/bash -c "cmd1 ${1}; cmd2 {$2}" ) || echo cmd2 did not work
EOF
我的帐户位于远程端的sudoers中,因此无需密码. 此示例显示了在单个ssh会话中执行此操作的不同方法,包括使用bash或子shell运行多个命令.另请注意,如果将上述代码放入可执行脚本中,则可以将命令行参数($1和$2)传递给ssh,这些参数将被展开,然后在远程端引用. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
