linux為安全計,把普通用戶設置為默認的賬戶;這一點跟windows不一樣,windows的默認用戶是管理員。由于linux的默認賬戶是普通用戶,而更改系統文件或者執行某些命令,必需要root(即linux中的管理員)身份才能進行,這就需要從當前用戶切換到root用戶。
linux中切換用戶的命令是su或su-。今天我在使用fsdisk這個命令時,終于體會到這兩者的區別了。
我首先是用su命令切換到root身份的,但是運行fdisk時,出現錯誤:command not found!這時必須加上路徑/sbin/fdisk才可以運行。
經論壇高手指點,才明白原由:是因為沒有為這個命令設置環境變量,所以要加絕對路徑才能運行!但是/sbin這個路徑是系統設置好的呀,怎么會出現沒有設置環境變量的錯誤呢?問題就出現在這個用su命令切換過來的root用戶上!
原來,切換root用戶最好用su-命令,而不是su命令!
su命令和su-命令最大的區別,就是:前者只是切換了身份,但SHELL環境仍然是普通用戶的SHELL;而后者連用戶和SHELL環境一起切換成root了。只有切換了SHELL環境才不會出現PATH環境變量錯誤。
下面一幅圖片能說明這個問題:
從圖片上可以看到用su切換成root用戶以后,pwd一下,發現工作目錄仍然是普通用戶lqs的工作目錄;而用su-命令切換以后,工作目錄變成root的工作目錄了!
再來看一下環境變量的不同:
你可以在自己的電腦上用echo $PATH命令看一下su-以后的環境變量有何不同。
以此類推,要從當前用戶切換到其它用戶也一樣,應該使用su-命令。
學習過程中細節問題一定要注意,這樣才能少走彎路!
本文出自 51CTO.COM技術博客