大部分Linux發行版的默認賬戶是普通用戶,而更改系統文件或者執行某些命令,需要root身份才能進行,這就需要從當前用戶切換到root用戶,Linux中切換用戶的命令是su或su -,下面就su命令和su -命令最大的本質區別給大家詳解一下:  

前者只是切換了root身份,但Shell環境仍然是普通用戶的Shell;而後者連用戶和Shell環境一起切換成root身份了。只有切換了Shell環境才不會出現PATH環境變量錯誤。su切換成root用戶以後,pwd一下,發現工作目錄仍然是普通用戶的工作目錄;而用su -命令切換以後,工作目錄變成root的工作目錄了。用echo $PATH命令看一下su和su - 以後的環境變量有何不同。以此類推,要從當前用戶切換到其它用戶也一樣,應該使用su -命令。 

打個比方:在普通用戶下輸入:

$pwd

/home/test (當前用戶目錄)

$su ******
 (輸入密碼)

#pwd (再次查看路徑)


/home/test (還是當前用戶目錄)

但是如果換成su -
的話結果如下:

$pwd


/home/test(當前用戶目錄)

$su -


****** (輸入密碼)

#pwd (再次查看路徑)


/root (切換到超級用戶目錄)
 
小知識點:
環境變量:實際上就是用戶運行環境的參數集合,linux是一個都用戶操作系統,而且每個用戶登陸後,都會有一個專有的運行環境。通常每個用戶默認的環境環境都是相同的,而這個默認環境實際上都是一組環境變量的定義,用戶可以對自己的運行環境進行定制,其方法就是修改相應的系統環境變量。
 
常見的環境變量:
PATH 系統路徑
HOME 系統根目錄
HISTSIZE 保存歷史命令記錄的條數
LOGNAME 當前用戶的登陸名
HOSTNAME 主機的名稱,若應用程序要用到主機名的話,通常是從這個變量中獲取的
SHELL 當前用戶用的哪種shell
LANG/LANGUGE語言相關的環境變量,使用多種語言的用戶可以修改此環境變量
MAIL 當前用戶的郵件存放目錄

Felix 發表在 痞客邦 PIXNET 留言(0) 人氣()