【问题标题】:SSH to server, Sudo su - then run commands in bash [duplicate]SSH到服务器,Sudo su - 然后在bash中运行命令[重复]
【发布时间】:2023-07-11 18:33:01
【问题描述】:

我有以下

#!/bin/bash

USER='scott'
PASS='tiger'

ssh -t $USER@server006.web.com "sudo su - http" 

这可行,但我试图让它在之后运行脚本,如果我这样做,使用 -c 或

脚本执行这样的 grep:

grep -i "Exception:" /opt/local/server/logs/exceptions.log | grep -e "|*-*-*:*:*,*|" | tail -1 | awk -F'|' '{print $2}' >> log.log

这本身也可以正常工作,但我需要 http 才能做到这一点。

我也无法将脚本的输出通过 SCP 返回到 server001,所以我被困在这里,

任何想法都将不胜感激。 本

【问题讨论】:

    标签: bash shell ssh sudo aix


    【解决方案1】:

    你可能想要sudo -u 而不是sudo su -

    ssh -t $USER@server006.web.com sudo -u http script 
    

    【讨论】:

    • 也试过这个,我收到连接关闭错误,说用户 ben 不允许执行 script.sh
    【解决方案2】:

    试试

    ssh -t $USER@server006.web.com 'sudo -u http grep -i "Exception:" /opt/local/server/logs/exceptions.log | grep -e "|*-*-*:*:*,*|" | tail -1 | awk -F"|" "{print $2}" >> log.log'
    

    Sudo 已经以其他用户身份运行命令,无需再次 su。

    执行 sudo su 的唯一原因是有一个快速的方法来启动另一个用户的新 shell。

    【讨论】:

    • 感谢回复,我试过了,得到了 ben@server006.server.com 的密码:[sudo] ben 的密码:对不起,用户 benis 不允许执行 '/bin/grep -i 异常:...... 作为 server006.server.com 上的 http
    • 好吧,这个错误几乎说明了一切,'ben' 用户需要在 /etc/sudoers 中获得适当的权限。通常是“sudo”或“admin”组的成员。
    【解决方案3】:

    我猜我迟到了。 我的解决方案:

    ssh -t $USER@server006.web.com "sudo cat /etc/shadow"
    

    并将 cat /etc/shadow 替换为您想要的程序。

    【讨论】:

      最近更新 更多