爲何useradd不能用,我剛纔明明su root了?
問題說明:
我剛纔使用普通用戶登陸linux的,後來我想添加一個新的用戶,由於只有root纔有添加新用戶的權利,因此使用su root。而後再使用useradd newuser,
接着就出現上面的問題
。
經過上網查找資料知道。
首先從環境變量提及,在unix系統裏面,
每一個系統用戶都有本身的環境變量來定義本身登錄上來的的SHELL,終端類型,路徑等等,
在LINUX下,BSHELL的用戶登錄後會執行主目錄下的.bash_profile文件,
CSHELL的用戶會執行.cshrc_profile文件,這些文件裏定義了你這個用戶的環境變量。
出現這個問題,有多是以普通用戶登錄主機,
而此用戶的環境裏面沒有定義系統命令所在的一些路徑,
好比/usr/bin,/usr/sbin等(就象WINDOWS裏面的PATH同樣),
或者在一些狀況下TELNET上主機後也會遺失環境變量,這時候你能夠作的是:
1. 肯定須要此用戶執行系統命令,那麼能夠把系統路徑加到該用戶的.bash_profile/.cshrc_profile的PATH裏面。
2. 仍是用ROOT用戶執行命令,那麼用命令su - 能夠取得ROOT用戶的權限和環境。
(注意,是su -而不是su。由於su是隻取得ROOT的權限,
su - 是取得ROOT的權限後還執行ROOT的PROFILE來取得ROOT的環境變量)
我這裏出現問題就是以下這個緣由:
su root只是得到root用戶的權限;
su - root 不只得到root用戶的權限,並且還執行root的profile來執行root的環境變量。