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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM