sudo的配置文件 sudoers 通常在 /etc 目錄下。 不過無論 sudoers 文件在哪兒,sudo
都提供了一個編輯該文件的命令:visudo 來對該文件進行修改。linux
講解sudo配置文件/etc/sudoers的格式。
# User privilege specification
root ALL=(ALL) ALL
# Allow members of group sudo to execute any command after they have
# provided their password
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
以上是個人Ubuntu10.04的默認/etc/sudoers文件。"#"開頭的都是註釋能夠忽略。
首先用戶須要轉換成根用戶並使用visudo命令打開/etc/sudoers文件。
講解:root ALL=(ALL) ALL
root表示被受權的用戶,這裏是根用戶;
第一個ALL表示全部計算機;
第二個ALL表示全部用戶;
第三個ALL表示全部命令;
全句的意思是:受權根用戶在全部計算機上以全部用戶的身份運行全部文件。
%admin ALL=(ALL) ALL同上面同樣,只不過被受權的成了admin這個組。
通用格式
/etc/sudoers的通用格式爲:
user host run_as command
user:一位或幾位用戶,在/etc/group中能夠用一個%代替它,組對象的名稱必定要用百分號%開頭。
host:一個或幾個主機名;
run_as:做爲哪一個用戶運行,常見選項是root和ALL
command:想讓用戶或組運行的一個或幾個根級別命令。
例如:
hans ALL=(root) useradd,userdel
受權hans用戶在全部計算機上以root身份運行useradd,userdel命令。
%smith ALL=(ALL) NOPASSWD:useradd,userdel
受權smith組所有成員在全部計算機上以全部用戶的身份運行useradd,userdel命令;且運行時沒必要輸入密碼。
須要注意的是,當咱們爲用戶定義能夠運行的命令時,必須使用完整的命令路徑。這樣作是徹底出於安全的考慮,若是咱們給出的命令只是簡單的userad 而非 /usr/sbin/useradd,那麼用戶有可能建立一個他本身的腳本,也叫作userad,而後放在它的本地路徑中,如此一來他就可以經過這個名爲 useradd的本地腳本,做爲root來執行任何他想要的命令了。這是至關危險的!安全
參考:ide
http://chenall.net/post/linux-sudo-config/post
http://desert3.iteye.com/blog/1663995this
http://blog.csdn.net/a19881029/article/details/18730671.net