為了安全及管理的方便,可將需要用root許可權的用戶加入到sudo管理,用root的許可權來管理系統。利用sudo控制用戶對系統命令的使用許可權。 普通用戶可以查看,但不能刪除: 但是在/tmp公共環境下可以搞事情: 下麵我們授予bqh1用戶root許可權。 執行如下visudo 或者 vi /etc/su ...
為了安全及管理的方便,可將需要用root許可權的用戶加入到sudo管理,用root的許可權來管理系統。利用sudo控制用戶對系統命令的使用許可權。
普通用戶可以查看,但不能刪除:
但是在/tmp公共環境下可以搞事情:
下麵我們授予bqh1用戶root許可權。
執行如下visudo 或者 vi /etc/sudoers命令,即可打開sudo的配置文件進行編輯:
可以vi編輯器的功能:輸入98jj
現在我們用普通用戶創建一個用戶:
如果不加sudo的話,相當於調兵沒帶虎符。
如何只授權於某些命令呢?例如:(touch、useradd、mkdir、rm)
註意:授權的命令得寫全路徑,全路徑不知道的情況下可以用which查。
執行命令每次都讓輸入密碼,如何屏蔽:
看效果,並沒有提示輸入密碼:
案例:
定義一個管理員,別名ADMINS,在SERVER機器可以切換的角色有QHJS,能夠擁有ADM和USER命令許可權,不希望輸入密碼;再定義一個初級管理員,擁有USER許可權,不需要密碼,具體配置如下:
執行如下visudo 或者 vi /etc/sudoers命令,即可打開sudo的配置文件進行編輯:
可以vi編輯器的功能:輸入98jj查看當前配置情況。
###################sudo 格式 ###################
#root ALL=(ALL) ALL
#User_Alias Host_Alias = Runas_Alias Cmnd_Alias
##################by sudo text#####################
定義用戶或用戶組別名:
User_Alias ADMINS = bqh, %home
User_Alias CHUJIADMIN=jyw
定義主機別名:
Host_Alias SERVERS = bqh-01, abchost
定義命令別名:
Cmnd_Alias USER = /usr/sbin/useradd
Cmnd_Alias ADM = /bin/rm
定義切換角色別名:
Runas_Alias QHJS = root
Runas_Alias QHJS1 = bqh
###################################################
定義用戶規則:
ADMINS SERVERS = (QHJS) NOPASSWD:ADM, USER
CHUJIADMIN SERVERS = (QHJS) NOPASSWD:USER
我們切換到bqh用戶下查看擁有哪些許可權:
我們切換到jyw用戶下查看擁有哪些許可權:
我們添加新用戶並加入到/home組下,再查看許可權有哪些:
什麼情況下使用上述別名:
大部分用ALL,工作中一般有多個系統用戶,需要分類,分層次管理用戶的時候才用定義。
sudo配置文件小結:
授權格則中的所有ALL字元串必須大寫字母。
一行命令內容超長,可以用“\”斜線換行。
“!”嘆號表示非,就是命令取反的一審,即禁止執行的命令。
命令的順序是從後向前,即把禁止的命令寫到後面,如:/usr/sbin/*,!/usr/sbin/visudo