SSH到服务器,Sudo su - 然后在bash中运行命令[重复]

Posted

技术标签:

【中文标题】SSH到服务器,Sudo su - 然后在bash中运行命令[重复]【英文标题】:SSH to server, Sudo su - then run commands in bash [duplicate] 【发布时间】:2014-05-13 19:39:18 【问题描述】:

我有以下

#!/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,所以我被困在这里,

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

【问题讨论】:

【参考方案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 替换为您想要的程序。

【讨论】:

以上是关于SSH到服务器,Sudo su - 然后在bash中运行命令[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 gitlab 管道中运行“sudo su”

设置ssh证书登录,禁止root登录,禁止su到root,sudo权限设置

Linux学习笔记(十三) su sudo 限制root远程登陆

Linux学习笔记——su_sudo_ssh_pdsh命令

如何在不覆盖 TTY 的情况下将密码传递给 su/sudo/ssh?

CentOS 之 sudo