當(dāng)我們以root執(zhí)行su時(shí),su命令會(huì)以當(dāng)前shell進(jìn)程為父進(jìn)程來創(chuàng)建一個(gè)新的shell進(jìn)程,這個(gè)shell進(jìn)程是提供給我們所要su到的那個(gè)用戶使用的,而root的shell進(jìn)程仍然存在,反過來也是一樣的,這就是你所問的問題的原因,因?yàn)橹澳莻€(gè)用戶的shell進(jìn)程還沒關(guān)閉,你可以使用exit退出一下,可以看到,并不是退出登錄了,而是回到之前的那個(gè)用戶去了。因?yàn)樗鼈兪歉缸舆M(jìn)程的關(guān)系,子進(jìn)程的結(jié)束當(dāng)然 不會(huì)影響到父進(jìn)程的執(zhí)行了。但是我們?nèi)绻麖?qiáng)行殺死父進(jìn)程,那就直接退出了。 其實(shí)很多人并不了解,whoami和who am i的區(qū)別,他們的作用是不同的。
who am i 顯示當(dāng)前shell進(jìn)程的實(shí)際用戶ID。 whomai 顯示當(dāng)前shell進(jìn)程的有效用戶ID。 很多時(shí)候,這兩個(gè)輸出是一樣的,以至于我們以為這兩個(gè)命令的作用是相同的。
實(shí)例:root@yunhw-Aspire-4750G:~# who am i root pts/0 2011-12-10 13:13 (:0.0) root@yunhw-Aspire-4750G:~# whoami root root@yunhw-Aspire-4750G:~#ps -ef root 2939 2935 0 13:18 pts/0 00:00:00 bash root@yunhw-Aspire-4750G:~# su - yunhw yunhw@yunhw-Aspire-4750G:~$ who am i root pts/0 2011-12-10 13:13 (:0.0) yunhw@yunhw-Aspire-4750G:~$ whoami yunhw root@yunhw-Aspire-4750G:~#ps -ef root 2939 2935 0 13:18 pts/0 00:00:00 bash yunhw 2958 2939 0 13:19 pts/0 00:00:00 su - yunhw yunhw 2966 2958 7 13:19 pts/0 00:00:00 -su root@yunhw-Aspire-4750G:~#sudo kill -9 2939