前言:
/etc/sudoers 的規則可分為兩類:
一類是別名定義[略]。
別名定義並不是必須的,授權規則是必須的。
如果系統中只有幾個少量用戶,設置權限有限的話,可以不用定義別名,針對系統用戶直接授權。
格式:
授權用戶 主機=[(切換到哪些用戶或用戶組)] [是否需要密碼驗證] [命令1],
[(切換到哪些用戶或用戶組)] [是否需要密碼驗證] [命令2],......
簡化:
主機=ALL:表示授權用戶可以在任何可能出現的主機名的系統中執行後面命令。
注意:
1、[ ]中的內容,可以省略。
2、命令與命令之間用','號分隔。
3、[(切換到哪些用戶或用戶組)]:
3.1:如果省略,則默認為root用戶。
案例:user1 ALL=/bin/chown,命令2 表示:user1可以切換到root
3.2:如果ALL,則代表能切換到所有用戶。
案例:user1 ALL=(ALL) 命令1,命令2 表示:user1用戶可以切換到任何用戶
4、 [是否需要密碼驗證]
4.1:如果省略,需要驗證密碼。
4.2:NOPASSWD:命令 這樣就不需要輸入密碼
扯文字遊戲還是比較無聊的,看一下下面的幾個案例。
案例1:
user1 ALL=(root) /bin/chown
表示:user1可以切換到root執行後面的命令,需要輸入密碼
案例2:
user1 ALL=(root) NOPASSWD: /bin/chown
表示:user1可以切換到root執行後面的命令,不需要輸入密碼
案例3:[懶人型,不推薦]
user1 ALL=(ALL) NOPASSWD:ALL
user1 ALL=(ALL) ALL
表示:用戶user1可以切換到所有用戶執行所有命令
注意:
關於wheel組下期再做詳細解釋
1、以centos7普通用戶stephen為例,演示如何授權:
創建用戶併為其賦密碼
切換到stephen用戶
以chown命令為例
注意:普通用戶是不能使用chown命令的
下圖所示無權限操作
2、利用root修改/etc/sudoers文件
首先給sudoers可寫[w]的權限
chmod u+w /etc/sudoers
查看
ll /etc/sudoers
3.1、測試案例1:
測試命令:stephen ALL=(root) /bin/chown
vim /etc/sudoers
切換到stephen測試
sudo chown stephen:odysee sudoFile/
注意:
1、使用命令需要輸入密碼
2、sudo -l:可以查看用戶擁有的命令
如下圖stephen只有一個可憐巴巴的chown
3.2、測試案例2:
測試命令:stephen ALL=(root) NOPASSWD: /bin/chown
用root用戶修改一下sudoers文件
vim /etc/sudoers
切換到stephen測試
sudo chown stephen:root sudoFile/
這裡就不用輸入密碼了
4、還原文件,去掉sudoers文件w權限
其實只要弄明白了授權規則,其他的都是自己操作驗證了
提示:
最好別user1 ALL=(ALL) NOPASSWD:ALL/user1 ALL=(ALL) ALL這麼直接。
下一篇談一下關於wheel組的認識。
歡迎大家給予寶貴的意見或者建議。
歡迎大家補充或者共享一些其他的方法。
感謝支持。
閱讀更多 程序員日常筆記 的文章