1. 程式人生 > >sudo 命令與許可權配置講解

sudo 命令與許可權配置講解

sudo命令用來以其他身份來執行命令,預設的身份為root。在/etc/sudoers中設定了可執行sudo指令的使用者。若其未經授權的使用者企圖使用sudo,則會發出警告的郵件給管理員。使用者使用sudo時,必須先輸入密碼,之後有5分鐘的有效期限,超過期限則必須重新輸入密碼。

sudo命令的配置檔案位於 /etc/sudoers
當然也可以將不同的使用者以不同檔案進行分別配置sudo許可權,這樣便於批量控制 /etc/sudoers.d/user

我分別拿幾個配置來進行講解

1、給使用者分配sudo許可權

下面的一行配置是說,配置使用者wanglei的sudo許可權
1、第一個ALL代表可以執行sudo命令的主機(這裡表示任何主機)
2、第二個ALL表示執行sudo的時候以哪個使用者的身份執行(這裡表示任何使用者)
3、第三個ALL表示sudo可以執行的命令(ALL表示所有)

wanglei   ALL=(ALL) ALL

2、給使用者組分配sudo許可權

下面的一行配置是說,配置使用者組sudo的sudo許可權
至於哪些使用者可以執行許可權,則可以grep sudo /etc/group進行檢視,使用者只要被新增進改組,即可執行
1、ubuntu-1代表只有在主機ubuntu-1上面可以執行後面配置的sudo許可權
2、(ALL)表示執行sudo的時候以哪個使用者的身份執行(這裡表示任何使用者)
3、ALL表示sudo可以執行的命令(ALL表示所有)

%sudo   ubuntu-1=(ALL) ALL

3、給使用者test分配sudo許可權,不輸入密碼即可執行sudo許可權,並且限制可以執行的命令

下面的一行配置是說,配置使用者test的sudo許可權
1、第一個ALL代表可以執行sudo命令的主機(這裡表示任何主機)
2、第二個ALL表示執行sudo的時候以哪個使用者的身份執行(這裡表示任何使用者)
3、NOPASSWD:/bin/systemctl,/usr/bin/touch表示使用者可以通過sudo來執行定義的兩條命令,那麼它不僅可以重啟服務,而且也可以touch在任何目錄下建立檔案

test   ALL=(ALL) NOPASSWD:/bin/systemctl,/usr/bin/touch

或者
test   ALL=(ALL) NOPASSWD:ALL