系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > http://www.jb51.net/LINUXjishu/19290

Linux下su命令的實例講解

時間:2014-12-18 13:43:32 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20141218/32890.html 手機查看 評論

  Linux下的su命令主要用于切換用戶,可將普通用戶與超級用戶相互切換,那么su命令有哪些用途呢?使用su命令后,其他用戶是否還在呢?下面隨小編一起來看看Linux下su命令的實例講解吧。

 Linux下su命令的實例講解

  原問:linux中,我以root登錄,和以其他用戶登錄然后使用su命令切換至root用戶,有什么不一樣,如果一樣的話,我執(zhí)行su命令之后,其他的用戶還在不在系統(tǒng)中?本人在執(zhí)行su后,試圖刪除其他用戶,linux提示,其他用戶logged in?why

  回答:我來為你解釋吧! unix系統(tǒng)里,當(dāng)用戶登錄時會為每個用戶創(chuàng)建一個shell進程,提供交互功能,如果你使用的是bash,那么這個shell進程就是bash,使用的ksh,這個進程就是ksh,其他shell也是一樣。

  而對于進程而言,在它的進程PCB(進程控制塊)里,有實際用戶ID和有效用戶ID這兩個值,所謂實際用戶ID是指該進程是以什么身份創(chuàng)建的,比如:我當(dāng)前是root用戶,我創(chuàng)建的進程的實際用戶ID就是root的ID,一般為0。而有效用戶ID是指對該進程當(dāng)前擁有使用權(quán)限的用戶的ID,比如我有一輛車,我把它組出去了,這個車的擁有者是我,但是使用權(quán)限卻不是我的。

  一般情況下實際用戶ID和有效用戶ID都是相同的,su命令就是擁有這樣的功能,讓一個進程可以以命令擁有者的權(quán)限運行,即可以使進程的實際用戶ID和有效用戶ID不相同。你可以用ls -l去查看su這個命令,在它的擁有者的x權(quán)限位上寫的一定是個s(小s),passwd命令也是一樣,他們擁有相同的功能。這個s位的意思是 執(zhí)行該命令的用戶可以以該命令的擁有者權(quán)限來執(zhí)行,如果你把這個s位取消了,也就只有su的擁有者可以su了。

  現(xiàn)在來進一步解釋下吧,希望你能看的懂。

  當(dāng)我們以root執(zhí)行su時,su命令會以當(dāng)前shell進程為父進程來創(chuàng)建一個新的shell進程,這個shell進程是提供給我們所要su到的那個用戶使用的,而root的shell進程仍然存在,反過來也是一樣的,這就是你所問的問題的原因,因為之前那個用戶的shell進程還沒關(guān)閉,你可以使用exit退出一下,可以看到,并不是退出登錄了,而是回到之前的那個用戶去了。因為它們是父子進程的關(guān)系,子進程的結(jié)束當(dāng)然 不會影響到父進程的執(zhí)行了。但是我們?nèi)绻麖娦袣⑺栏高M程,那就直接退出了。

  其實很多人并不了解,whoami和who am i的區(qū)別,他們的作用是不同的。

  who am i 顯示當(dāng)前shell進程的實際用戶ID。

  whomai 顯示當(dāng)前shell進程的有效用戶ID。

  很多時候,這兩個輸出是一樣的,以至于我們以為這兩個命令的作用是相同的。

  實例: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

  這條命令一執(zhí)行,也就完全退出了。

  上面就是Linux下su命令的用法介紹了,通過su命令使用問題的講解來給大家詳細介紹其具體的用法,也給遇到該問題的用戶做個參考,你學(xué)會了嗎?

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄