当我以 root 身份运行“su”时会发生什么?

当我以 root 身份运行“su”时会发生什么?

如果我su以 root 身份重复运行(是的,为什么有人想要这样做?:),我exit每次运行时都必须运行一次su才能回到普通用户。发生了什么?

user@computer:~$ su
Password: 
root@computer:/home/user# su
root@computer:/home/user# su
root@computer:/home/user# exit
exit
root@computer:/home/user# exit
exit
root@computer:/home/user# exit
exit
user@computer:~$ 

答案1

每次执行时都会生成一个新的 shell su。如果root用户bash设置为登录shell,bash每次登录都会看到进程数不断增加su

ps aux | grep bash

每一个exit都会终止一个 shell 并返回到您(最后)执行的 shell su

这与以 root 身份执行无关su,除了能够在不输入凭据的情况下重复执行此操作的便利性之外。你su自己也会得到同样的结果。

答案2

您只需启动一个新的子 shell 作为root。使用su <yourusername>和没有区别su <yourusername>。您也必须退出这些才能回到“原始”用户。

相关内容