變換用戶身份爲root的方法su 與 sudo

在linux系統中,誰是真正的老大?root。誰的權限至高無上?root。那普通用戶咋辦?這不能做,那不能幹?讓咱去死嗎?嘿嘿,不想當將軍的士兵不是好士兵,同樣不想使用root權限的賬號是一個懶人,在linux系統中有兩個命令可以使我們變成root,這兩個命令就是su和sudo。下面我來爲大家簡單的介紹一下,簡單的瞭解一下二者的同異處。


su切換不同的用戶身份:


使用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會出現啥狀況呢?


[cc lang='bash']
# 什麼也不好生,也沒有讓您輸入密碼
[root@xiaoxiaozi www]# su
[root@xiaoxiaozi www]#
[/cc]


使用su賬號想要切換成root就一定要知道root賬號的密碼,但是我們的目的只是讓普通用戶來借用root的權限,而不是把普通賬號變爲root,因爲一旦root密碼被別人知道這可是很危險的行爲。所以我們有必要了解一下sudo這個命令。


sudo 只要輸入自己的賬號就可以擁有root權限:


聽描述不錯吧?但是事情不是這麼簡單的,這是因爲您要想執行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這行後面加上如下內容:


[cc lang='bash']
# 用戶賬號 登錄的主機 = (可以變換的身份) 可以執行的命令
username ALL=(ALL) ALL
[/cc]


剛纔介紹的是用戶身份的聲明,下面還有一個特殊的用戶組說明——wheel有如下內容:


[cc lang='bash']
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL


## Same thing without a password
## 用戶在使用sudo命令時不用輸入密碼,後面的ALL可以換爲具體的shell命令
# %wheel ALL=(ALL) NOPASSWD: ALL
[/cc]

Mac下su命令提示su:Sorry的解決辦法
用 sudo su -
輸入密碼,獲得root權限

退出新賬號身份:


這個命令是最簡單的了,大家記一下哈:exit 嘿嘿,退出即可


[cc lang='bash']
[simaopig@xiaoxiaozi www]$ su
密碼:
[root@xiaoxiaozi www]# exit
exit
[simaopig@xiaoxiaozi www]$
[/cc]

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