Linux 中用戶切換:su 和 su- 的使用 環境變量詳解

原文鏈接:https://blog.51cto.com/2484643/2091568

大部分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 當前用戶的郵件存放目錄

設置環境變量方法:
通過etho顯示字符串(指定的環境變量)
通過export 設置環境變量
通過env顯示所有環境變量
通過set命令顯示本地定義的shell變量
通過uset命令來清除環境變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章