首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我们不能在没有sudo的情况下以不同用户的身份执行命令列表?

为什么我们不能在没有sudo的情况下以不同用户的身份执行命令列表?
EN

Unix & Linux用户
提问于 2013-08-14 20:30:54
回答 2查看 7.6K关注 0票数 9

其他论坛以不同的方式提出了这一问题。但是还没有一个很好的解释为什么你不能在bash中做下面的事情。

代码语言:javascript
复制
#!/bin/bash
command1
SWITCH_USER_TO rag
command2
command3

通常,建议的方法是

代码语言:javascript
复制
#!/bin/bash
command1
sudo -u rag command2
sudo -u rag command3

但是,为什么在bash中无法在bash脚本执行过程中更改为不同的用户,并以不同用户的身份执行其余的命令?

EN

回答 2

Unix & Linux用户

发布于 2013-08-14 20:56:07

内核提供man 2 setuid和朋友。

现在,它可以用于调用进程。更重要的是,你不能提升你的特权。这就是为什么susudo设置了SETUID位,因此它们总是以最高权限(root)运行,并相应地降至所需的用户。

这种组合意味着您不能通过运行其他程序来更改shell UID (这就是为什么您不能期望sudo或任何其他程序这样做),并且您不能(作为shell)自己执行它,除非您愿意以root用户或您想要切换的同一个用户的身份运行,这是没有意义的。而且,一旦你放弃特权,就没有办法回去了。

票数 7
EN

Unix & Linux用户

发布于 2013-08-15 04:29:16

通过执行"sh“或-u命令,可以使用"sudo -u ram sh”命令更改为"ram“用户。“退出”命令将使您返回到原始用户。

票数 -3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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