關於sudo

sudo的配置文件是/etc/sudoers,雖然可以手工打開、編輯、保存。但還是建議使用visudo命令來編輯,因爲它能夠防止多個用戶同時修改,且能進行有限的語法檢查從而避免因權限位出錯而不被sudo認可。

比較重要的是如下的格式:
user machine=(users) commands
也就是,允許在machine登錄的 user 用戶以users的身份來執行commands命令。這裏的machine、users和commands可以用Host_Alias、User_Alias和Cmnd_Alias來代替了。%group ALL=(ALL) ALL,和上面的一樣,只不過是按組來限制權限。

舉例:
讓某個用戶(dev)有殺死指定另外一個用戶的進程的權限(比如www用戶什麼的),但是不能隨便殺其他用戶的進程。
## Processes
Cmnd_Alias PROCESSES = /bin/kill, /usr/bin/kill, /usr/bin/killall, /usr/bin/pkill
Defaults:dev runas_default=www
dev ALL=(www) PROCESSES
於是,可以執行:sudo -u www kill 1111,但有了Defaults的配置,就可以不用-u選項。


sudo命令的另一個便捷的功能,是它能夠指出哪些命令在執行時不需要輸入密碼。這很有用,尤其是在非交互式腳本中以超級用戶的身份來運行某些命令的時候。例如,想要讓用戶作爲超級用戶不必輸入密碼就能執行kill命令,以便用戶能立刻殺死一個失控的進程。爲此,在命令行前邊加上NOPASSWD:屬性即可:

kong ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall


可以使用#include和#includedir命令來引入自定義的文件


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章