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/

相关文章:

linux - 来自文件的 Zenity Bash 列表

linux - 系统 Shell 脚本无法在 PATH 中找到我的命令

android - 如何从 Android 应用程序运行 root 命令?

c++ - 无法退出 while 循环与 boolean 条件 c++

java - java中exit(number)的区别

linux - 如何替换变量中的脚本并在脚本中使用变量?

linux - 批量将图像文件 jpg、png 转换为 webp 也在子文件夹中

bash - 如何比较十六进制数和shell中的十六进制数?

mysql - 在MySQL安装中取消勾选Modify Security Settings时,Access Denied root@localhost

python - 当 Python 脚本从 PyCharm 控制台停止时等待并完成进程?