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

标签 bash root exit su

当我打开 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/

相关文章:

bash - 按排序顺序输出参数

Apache2权限问题

android - 如何在 Android 中将项目添加到快速设置

vb6 - VB 6 退出时崩溃

function - 如何在 elisp 中的任意点退出函数

python - 如何执行交互式外部命令?

bash - 如何从当前工作目录的另一个目录启动fzf?

php - 如何使用 Yii::app()->end() 方法以及它与 exit() 有何不同?

linux - awk 子串单个字符

linux - 使用 root 权限安装 node.js 有缺点吗?