2021-05-12 14:32:11
CentOS使用者許可權管理--su與sudo
Linux許可權管理--su與sudo
1、su用來切換登入的使用者,比如當前使用者為chen,可以用su zhu,並輸入使用者zhu的登入密碼,就可以切換到使用者zhu。
如果一個普通使用者想切換到root使用者,以root使用者執行某些程式和檢視檔案,就必須知道root使用者的密碼。同理,如果切換到其他的使用者,也需要知道其他使用者帳號密碼。
如果一個使用者想擁有root許可權,可以直接把該使用者的id改為0,0是root使用者的id。另外可以採用xia面的sudo方法,獲取root許可權。這種方式不要只知道root密碼。
2、sudo,受限的su
如果系統管理員sa不想其它的普通使用者知道root密碼,而又希望其他使用者能夠擁有root使用者部分許可權或者全部許可權。這是最好的選擇方式是使用sudo。
sudo需要通過/etc/sudoers檔案來管理使用者許可權,或者直接輸入visudo來編輯/etc/sudoers 檔案,最好使用visudo命令。
sudo執行程式時,輸入自己的登入密碼即可。
/etc/sudoers許可權管理的通用格式為:
user host =run_as command
user:一位或幾位使用者,在/etc/group中可以用一個%代替它,組物件的名稱一定要用百分號%開頭。
host:一個或幾個主機名;
run_as:作為哪個使用者執行,常見選項是root和ALL
command:想讓使用者或組執行的一個或幾個根級別命令。
eg:root ALL=(ALL) ALL
root表示被授權的使用者,這裡是根使用者;
第一個ALL表示所有計算機;
第二個ALL表示所有使用者;
第三個ALL表示所有命令;
全句的意思是:授權根使用者在所有計算機上以所有使用者的身份執行所有檔案。
$sudo su - 可以由一般使用者切換到普通使用者
eg:%zhang ALL=(ALL) NOPASSWD:useradd,userdel
授權zhang組全部成員在所有計算機上以所有使用者的身份執行useradd,userdel命令;且執行時不必輸入密碼。
區分su、su root、su -、 su - root
su 後面不加使用者是預設切到 root
su 是不改變當前變數
su - 是改變為切換到使用者的變數
也就是說su只能獲得root的執行許可權,不能獲得環境變數
而su -是切換到root並獲得root的環境變數及執行許可權
su - root is the same as su -
just like login as root, then the shell is login shell,
which mean it will expericene a login process,
usually .bash_profile and .bashrc will be sourced
su root is the same as su
like you open an interactive shell in root name,
then only .bashrc will be sourced.
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-08/134760.htm
相關文章