變換使用者身份為root的方法su 與 sudo

2021-05-27 11:17:06 字數 2688 閱讀 9081

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

# 什麼也不好生,也沒有讓您輸入密碼

[root

@xiaoxiaozi www

]# su

[root

@xiaoxiaozi www

]#使用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這行後面加上如下內容:

# 使用者賬號 登入的主機 = (可以變換的身份) 可以執行的命令

username 

all=

(all

) all

剛才介紹的是使用者身份的宣告,下面還有乙個特殊的使用者組說明——wheel有如下內容:

## 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

退出新賬號身份:

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

[simaopig

@xiaoxiaozi www

]$ su

密碼:

[root

@xiaoxiaozi www

]# exit

exit

[simaopig

@xiaoxiaozi www

]$

切換使用者身份命令 su 的使用方法詳解

su 命令可以切換成不同的使用者身份,命令格式如下 root localhost su 選項 使用者名稱選項說明 選項只使用 代表連帶使用者的環境變數一起切換 c 命令 僅執行一次命令,而不切換使用者身份 不能省略,它代表切換使用者身份時,使用者的環境變數也要切換成新使用者的環境變數。大家知道環境變...

MYSQL使用者root密碼為弱口令的

1 連線到對方mysql 伺服器 mysql u root h 192.168.0.1 mysql.exe 這個程式在你安裝了mysql的的bin目錄中 2 讓我們來看看伺服器中有些什麼資料庫 mysql show databases mysql預設安裝時會有mysql test這兩個資料庫,如果你...

Jenkins以root使用者執行的方法

以centos系統為例,記錄下修改jenkins以root使用者執行的方法。修改jenkins配置檔案 開啟配置檔案 vim etc sysconfig jenkins 修改 jenkins user,並去掉當前行注釋 jenkins user root 修改jenkins相關資料夾使用者許可權 c...