首頁 > 軟體

CentOS使用者許可權管理--su與sudo

2020-06-16 17:34:20

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


IT145.com E-mail:sddin#qq.com