在linux系統中,誰是真正的老大?root。誰的權限至高無上?root。那普通用戶咋辦?這不能做,那不能干?讓咱去死嗎?嘿嘿,不想當將軍的士兵不是好士兵,同樣不想使用root權限的賬號是一個懶人,在linux系統中有兩個命令可以使我們變成root,這兩個命令就是su和sudo。下面我來為大家簡單的介紹一下,簡單的了解一下二者的同異處。
使用su命令,我們可以切換不同的用戶身份,相當於有多個面具,一會兒當好人,一會兒當壞人,呵。當su后面沒有加上用戶賬號時,默認切換的就是root賬號。並且使用這個命令最常見的情況就是讓我們切換至root賬號,來充當一會兒系統管理員。咱也當一把老大。
參數 | 意義 |
---|---|
- | 執行此操作表示該用戶想戴上root的面具,且使用root的環境設置參數文件,如/root/.bash_profile等 等同於su -l root |
-l | 后面接用戶名,例如我想換成chongpig就寫su -l chongpig,這個l>的作用就是說明一下我要使用新用戶的身份所所有相關環境設置文件 |
-m 或者-p | -m與-p是一樣的,表示“使用當前環境設置,而不是重新調取新用戶的設置文件” |
-c | 用新身份僅執行一次命令,后面接的直接為shell命令 |
這個就不給出實例了,因為這個其實並不是今天的主角,不過還是有地方需要說明一下的。
- 如果只想使用root來操作系統,但是想繼續使用原賬號的環境參數,直接使用su即可
- PATH是比較麻煩的東西,如果可以,請將普通用戶,經常要用到root權限的,把其PATH設置為root的PATH
- 如果想真正的切換身份為新的賬號,請使用su -l或者換成root就是 su -l root 或者 su -
- 如果只是想用root賬號執行一個命令的話就直接用su -c “command”這樣就好
列位可能要問了,要是我本身就是root賬號,再執行su會出現啥狀況呢?
[root @xiaoxiaozi www ] # su
[root @xiaoxiaozi www ] #
使用su賬號想要切換成root就一定要知道root賬號的密碼,但是我們的目的只是讓普通用戶來借用root的權限,而不是把普通賬號變為root,因為一旦root密碼被別人知道這可是很危險的行為。所以我們有必要了解一下sudo這個命令。
聽描述不錯吧?但是事情不是這么簡單的,這是因為您要想執行sudo是有要求的。讓我們先來看一下sudo這個命令是如何工作的吧?
1. 當用戶執行sudo時,Linux系統會去尋找/etc/sudoers文件,並且這是主動的,判斷用戶是否有執行sudo命令的權限
2. 如果用戶有執行sudo的權限,讓用戶輸入自己的密碼來確認,這里比使用root的密碼強多了,贊一下
3. 如果密碼輸入正確,開始執行sudo后面跟的shell命令
4. 如果要切換的身份相同, 和su命令一樣,也不用輸入密碼
還得再強調一下,使用sudo命令,需要用戶確認輸入的是自己的密碼,而不是root的密碼,這可太帥了。呵呵。。
參數 | 意義 |
---|---|
-u | 后面可以接用戶賬號的名稱,或者是UID,假如UID為500的時候用戶>名為chongpig,我們可以用sudo -u #500 來作為切換到UID為500的用戶等同於 sudo -u chongpig |
默認情況下,用戶沒有使用sudo命令的權限,因為我們還沒有設置/etc/sudoers文件。我們可以使用visudo命令來編輯此文件,切忌不要直接使用vim或者gredit來編輯,因為一旦輸入有錯誤,可能會造成無法使用sudo的后果。
/etc/sudoers文件:
使用visodu命令后,打開的窗口與vi界面一致,如果想要為賬號增加使用sudo命令的話,可以在 root ALL=(ALL) ALL這行后面加上如下內容:
username ALL= (ALL ) ALL
剛才介紹的是用戶身份的聲明,下面還有一個特殊的用戶組說明——wheel有如下內容:
%wheel ALL= (ALL ) ALL
## Same thing without a password
## 用戶在使用sudo命令時不用輸入密碼,后面的ALL可以換為具體的shell命令
# %wheel ALL=(ALL) NOPASSWD: ALL
退出新賬號身份:
這個命令是最簡單的了,大家記一下哈:exit 嘿嘿,退出即可
密碼:
[root @xiaoxiaozi www ] # exit
exit
[simaopig @xiaoxiaozi www ]$
聲明: 本文采用 BY-NC-SA 協議進行授權 | 小小子
轉載自《變換用戶身份為root的方法su 與 sudo》