gpt4 book ai didi

bash - shell 中嵌套的 "su"命令调用有何含义?

转载 作者:行者123 更新时间:2023-11-29 09:42:18 26 4
gpt4 key购买 nike

当我打开 Windows shell 并写入 su 以成为 root 用户时,我注意到我可以一次又一次地写入 su...如果我写了 exit 然后这会引导我到之前的“su 实例”(?),并且我必须写尽可能多的 exit 作为 >su 我写的。这种多个“实例”的含义是什么?这种行为有什么优点吗?

最佳答案

在 Unix 编程模型中,用户进程无法获得 root 或其他用户的权限。

这意味着不可能编写一个 su 版本来简单地将当前 shell 转换为 root shell。相反,您必须通过运行 suid 可执行文件来获得 root 访问权限,这必然会创建一个新实例。

没有什么特别的优势,它只是在传统 Unix 中实现 su 的唯一方法。

您可以选择使用 exec su 而不是 su 将当前 shell 替换为新实例。这意味着根 shell 中的 exit 只会将您注销。

但是,我建议就这样吧。如果退出 vimnano,您希望返回到原始 shell。如果退出 ssh,您希望返回到原始 shell。不要试图让 su 成为异常(exception)。

关于bash - shell 中嵌套的 "su"命令调用有何含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46135490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com