原文發表於《網路安全和資訊化》2023年第1期,現**到部落格。
linux
系統對使用者的許可權定義比較嚴格,
root
使用者在系統中具有至高無上的許可權,而普通使用者的許可權則受到嚴格限制。在實際使用中,管理員一般都是先以普通使用者的身份登入,然後當需要時再利用
su命令切換到
root
使用者身份。對於普通使用者,如果需要執行更高許可權的命令,則可以由管理員通過
sudo
命令對其授權。本文將介紹su和
sudo
命令在linux
運維工作中的一些常見用法。
預設情況下,任何使用者只要知道了
root
使用者的密碼,都可以執行
su命令切換到
root
使用者。但是我們可能並不希望所有使用者都能切換到
root
身份,而是只想指定某個使用者可以切換,比如只允許
zhangsan
使用者使用
su命令切換身份。
要限制使用
su命令的使用者,需要進行兩個方面的設定。
首先需要啟用
pam_wheel
認證模組,
[root@server ~]#vim /etc/pam.d/su//將檔案中下面一行前的#去掉
auth required pam_wheel.so use_uid
這樣凡是執行「
su – root
」命令的使用者都將受到限制,只有
wheel
組中的成員才有許可權執行該命令。
因而下面需要做的就是將
zhangsan
加入到wheel
組中。
[root@server ~]#gpasswd -a zhangsan wheel
[root@server ~]#id zhangsan
uid=501(zhangsan) gid=501(zhangsan) groups=501(zhangsan),10(wheel)
這樣當使用乙個不屬於
wheel
組成員的賬號切換到
root
時,系統便會拒絕。
例如,使用
lisi
切換到root
,即使輸入了正確的
root
使用者密碼,也會提示「密碼不正確」。
[lisi@localhost ~]$su - root
口令:su: 密碼不正確
利用su
命令切換到
root
身份,必須要知道
root
使用者的密碼。這對於管理員沒什麼問題,但如果將密碼透露給乙個普通使用者,則很明顯不利於系統安全管理,因而對於普通使用者更常使用的是
sudo
命令。
sudo
命令的作用主要在於能夠允許經過授權的個別普通使用者以
root
許可權執行一些授權使用的管理命令。
比如以普通使用者
zhangsan
的身份建立使用者,系統會提示沒有許可權:
[zhangsan@localhost ~]$useradd test
-bash: /usr/sbin/useradd: 許可權不夠
下面讓zhangsan
使用sudo
命令以root
許可權去執行命令。注意,普通使用者使用
sudo
執行命令時會要求提供自己的密碼進行驗證。
[zhangsan@localhost ~]$sudo useradd test
[sudo] password for zhangsan:
zhangsan is not in the sudoers file. this incident will be reported.
zhangsan
使用sudo
命令仍然無法建立使用者,這是因為在
linux
中只有被授權的使用者才能執行
sudo
命令,而且使用
sudo
也只能執行那些被授權過的命令。
所以要使用
sudo
命令首先必須要經過管理員的授權設定,需要修改配置檔案「
/etc/sudoers
」,sudoers
檔案的基本配置格式如圖
1所示。
圖 1 sudoers檔案的配置格式
例如授權普通使用者
zhangsan
可以通過
sudo
方式執行所有的命令:
[root@localhost ~]#vim /etc/sudoers//在檔案末尾增加下列內容
zhangsan all=all
授權普通使用者
lisi
可以執行
/sbin/
和/usr/sbin/
目錄中的所有命令:
lisi all=/sbin/*,/usr/sbin/*
注意,「
/etc/sudoers
」是乙個唯讀檔案,修改完成儲存退出時要使用「
wq!」命令。
如果希望使用者只能執行部分命令,可以在「
/etc/sudoers
」中指定使用者所能執行的命令的檔案路徑,命令的檔案路徑可以通過
which
命令查詢。
例如:授權
zhangsan
只能執行
useradd
、userdel
和passwd
命令。
zhangsan all=/usr/sbin/useradd,/usr/sbin/userdel,/usr/bin/passwd
使用者每次在執行
sudo
命令時都要輸入自己的密碼,為了省去普通使用者執行
sudo
命令時需要輸入密碼的麻煩,可以在「
/etc/sudoers
」進行如下設定:
zhangsan all=nopasswd:/usr/sbin/useradd,/usr/sbin/userdel,/usr/bin/passwd
zhangsan
被授權執行
passwd
命令,為了防止
zhangsan
修改root
使用者的密碼,我們可以在
/etc/suoders
中加入「
! /usr/bin/passwd root」:
zhangsan all=nopasswd:/usr/sbin/useradd,/usr/sbin/userdel,/usr/bin/passwd,! /usr/bin/passwd root
除了針對使用者授權之外,我們也可以對使用者組授權,這樣使用者組內的所有成員使用者就都具有了執行
sudo
命令的許可權。如果授權的物件是使用者組,需要在組名的前面加上「%」。
例如:授權
managers
組內的成員使用者可以新增、刪除使用者賬號。
%managers all=nopasswd:/usr/sbin/useradd,/usr/sbin/userdel,/usr/bin/passwd,! /usr/bin/passwd root
最後我們以
zhangsan
的身份登入系統,執行「
sudo –l
」命令可以檢視當前使用者被授權執行的命令,如圖
2所示。
圖 2檢視使用者被授權執行的命令
進行命令測試,發現
zhangsan
可以更改普通使用者
lisi
的密碼,即使密碼不符合安全規則也同樣可以設定成功,這證明
zhangsan
是在以root
使用者的許可權執行
passwd
命令。而當
zhangsan
試圖更改
root
使用者的密碼時,系統則提示沒有許可權。測試結果如圖
3所示。
圖 3命令測試結果\
linux中su和sudo區別
su切換使用者,切換成root使用者,要輸入root使用者的密碼 su 使用者名稱 sudo 涉及到 etc sudoers檔案 內容如下 user privilege specification root all all all all members of the admin group may...
nmon在linux系統中的應用
1.首先應該獲取到nmon的安裝包,我們將其放在linux伺服器上。2.cd到該壓縮包所在的目錄下,執行tar zxvf nmon linux 14i.tar.gz來解壓縮。解壓成功會生成許多nmon檔案列表如下 3.這一步尤為關鍵 選擇與當前linux系統相對應的版本,拿ubntu來說,64位的需...
linux中su和sudo的區別
root使用者 su和sudo都用於執行具有root許可權的命令。root使用者基本上等同於windows上的管理員使用者 root使用者具有最大許可權,可以對系統執行任何操作。linux上的普通使用者以較低的許可權執行 例如,他們無法安裝軟體或寫入系統目錄。要執行需要這些許可權的操作,您必須使用s...