天天看點

Linux中sudo的使用

SUDO:switch user

概述:使用某個使用者A或某些使用者以其他使用者B的身份去執行某些指令,執行該指令的權限依照使用者B的權限。

實作與配置:

1.其配置檔案:/etc/sudoers

2.配置配置檔案:

法1:#vim /etc/sudoers

法2:#visudoers

3.文法格式:

username|alias   host=(username)   command_list

  使用者名|别名        主機=(以誰的身份)    指令清單

例如:jerry ALL=(root) /usr/sbin/usermod, /usr/sbin/userdel, /usr/bin/passwd

設定jerry可以在所有主機上以root權限去執行/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd這三個指令

由上可以看到,jerry可以執行/usr/bin/passwd,那麼他不就可以修改root使用者的密碼了,為防止該行為我們可以這樣設定。

jerry ALL=(root) /usr/sbin/usermod, /usr/sbin/userdel, /usr/bin/passwd, !/usr/bin/passwd root

4.使用别名:

●使用者别名:

User_Alias USERMANAGER = jerry, redhat, centos, ubuntu

User_Alias POWERMANAGER = tom, gentoo, USERMANAGER

●指令别名:

Cmnd_Alias USERMANCMND = /usr/sbin/useradd,/usr/sbin/usermod,/usr/bin/passwd, !/usr/bin/passwd root

●主機名稱:

Host_Alias MANHOST = ...

注:所有的Alias後面的名稱中的字元必須全部使用大寫字母,别名中還可以嵌套其他的别名。

5.在第一個字段處,不僅可以使用使用者,也可以使用别名定義的組,如果要使用系統上通過"groupadd"添加的組,則需要在在該組前面加上"%".

例如:系統原本有一個組“mygroup”

%mygroup ALL=(root) /usr/sbin/useradd, /usr/sbin/usermod,/usr/bin/passwd, !/usr/bin/passwd root

使用别名定義:

USERMANAGER ALL=(root) USERMANCMND

6.日志資訊

可以通過/var/log/secure檢視使用sudo執行過的指令已經執行指令的使用者的詳細資訊。

7.當某個使用者被賦予了sudo可以執行的指令時,每當在兩次指令執行的相隔的時間在預設時間之外時,就會被提示必須輸入使用者的密碼,以確定指令執行者的真實身份。但是在這個預設時間内執行則不需要鍵入使用者的密碼,為了防止其安全性,這時可以使用:

#sudo -k                #####要求下次在使用sudo執行指令時必須輸入密碼

#sudo -l                #####顯示目前使用者可以使用的sudo的所有指令

當需要為某使用者設定在使用sudo指令時,不在輸入密碼時,可以使用這樣的格式:

jerry ALL=(root) NOPASSWD: /usr/sbin/usermod, /usr/sbin/userdel, /usr/bin/passwd, !/usr/bin/passwd root

jerry ALL=(root) /usr/sbin/usermod, /usr/sbin/userdel, NOPASSWD: /usr/bin/passwd, !/usr/bin/passwd root

注:NOPASSWD隻對其後的指令生效。

本文轉自 向陽草米奇 51CTO部落格,原文連結:http://blog.51cto.com/grass51/796033,如需轉載請自行聯系原作者

繼續閱讀