賦予普通用戶特別權限(sudoers)
sudoers簡介:
在linux系統中,管理員往往不止一人,若每位管理員都用root身份進行管理工作,根本無法弄清誰做了些什麼操作,做什麼。所以最佳的方式是:管理員創建一些普通用戶,分配一部份系統管理工作給他們。通過sudo我們能把某些終極權限有針對性的下放,並且不必普通用戶知道root密碼,所以sudo相對於權限無限制性的su來說,還是比較安全的,所以sudo也能被 稱爲受限制的su,別外sudo是需要授權許可的,所以也被 稱爲授權許可的su,sudo執行命令的流程是當前用戶有轉換到root或者他指定轉換到的用戶,然後以root或者其它指定的轉換到的用戶身份執行命令,執行完成後,直接退回到當前用戶,而且這些的前提是通過sudo的配置文件/etc/sudoers來進行授權
sudoers公式:
授權用戶 主機=[(轉換到哪些用戶或者用戶組)][是否需要密碼驗證]命令1,[(轉換到哪些用戶或者用戶組)] [命令2]....
1、sudo工具由文件/etc/sudoers進行設置,該文件包含所有能訪問sudo工具的用戶列表並定義了他們的特權。一個典型的/etc/sudoers條目如下:
xiewb ALL=(ALL) ALL
這個條目使得用戶xiewb作爲終極用戶訪問所有應用程式,如果用戶xiewb需要作爲終極用戶運行命令,他只需要簡單地在命令前加入sudo。因些需要root用戶的身份執行命令ifconfig,xiewb要輸入sudo /usr/sbin/ifconfig。
注意:執行ifconfig命令要寫絕對路徑,/usr/sbin默認不在普通用戶的搜索路徑中,或加入export PATH=$PATH:/usr/sbin
2、例子
管理員需要允許gem用戶在主機sun上執行reboot和shutdown命令,在/etc/sudoers中加入:
gem sun=/usr/sbin/reboot,/usr/sbin/shutdown
注意:命令一定要使用絕對路徑,以避免其他目錄的同名命令被執行,從而造成安全隱患。
然後保存退出,gem用戶想執行reboot命令時,只要在提示符下運行下列命令:
$ sudo /usr/sbin/reboot
輸入正確的密碼,就能重啓服務器了。