首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误: su:必须从终端运行

错误: su:必须从终端运行
EN

Unix & Linux用户
提问于 2020-06-22 00:01:48
回答 2查看 24.6K关注 0票数 4

当我尝试使用下面给出的shell脚本登录到根用户时,它会引发一个错误:

代码语言:javascript
运行
复制
su: must be run from a terminal

枕(scriptfile.sh)看起来如下:

代码语言:javascript
运行
复制
su -s <<EOF
echo Now i am root
whoami
EOF

虽然我可以从终端成功地执行su,但默认情况下它会登录到根用户。

FYI:当我们用su替换sudo时,相同的脚本运行良好。我以普通用户的身份运行此脚本,而不是以根用户的身份运行。

错误的可能原因是什么?我如何解决这个问题?

注意:我想在不接触/etc/sudoers文件的情况下完成它。

EN

回答 2

Unix & Linux用户

发布于 2021-07-01 14:22:22

引用https://netsec.ws/?p=337的话,

代码语言:javascript
运行
复制
python -c 'import pty; pty.spawn("/bin/sh")'

echo os.system('/bin/bash')

/bin/sh -i

perl —e 'exec "/bin/sh";'

perl: exec "/bin/sh";

ruby: exec "/bin/sh"

lua: os.execute('/bin/sh')

(From within IRB) exec "/bin/sh"

(From within vi) :!bash

(From within vi) :set shell=/bin/bash:shell

(From within nmap) !sh
票数 0
EN

Unix & Linux用户

发布于 2020-06-22 00:24:03

可以将以下内容添加到您的shell中

代码语言:javascript
运行
复制
export TERM=xterm
票数 -5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/594264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档