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中运行命令[重复]的主要内容,如果未能解决你的问题,请参考以下文章
设置ssh证书登录,禁止root登录,禁止su到root,sudo权限设置
Linux学习笔记(十三) su sudo 限制root远程登陆