大家好,又見面了,我是你們的朋友全棧君。
CATALOG
- 前言
- 規則講解
- 第一部分A
- 第二部分B
- 第三部分C
- 第四部分D
- 第五部分E
- 舉例
前言
/etc/sudoers檔案一般涉及到linux系統中關于sudo指令的權限配置問題。
規則講解
sudoers檔案的資料,每一行分為五個部分,我們用ABCDE來表示。
一般情況下是: A B = {©} {D} E
且C與D是可以省略的,我們用大括号擴起來友善大家注意到,但真正書寫指令的時候不需要打括号。
- 第一個部分
代表授權使用sudo的使用者或者組A
- 第二部分
代表允許授權使用者在哪些主機上使用這些權利B
- 第三部分
代表允許被授權使用者提權到什麼使用者什麼組級别的權限,如果省略就代表允許提權到任意使用者級别。C
- 第四部分
代表當被授權使用者是否需要輸入自身密碼來使用特權,若省略這代表需要輸入密碼D
- 第五部分
代表允許執行的指令,如果是all就代表允許執行所有指令E
第一部分A
A表示的是哪個使用者或者哪個使用者組擁有執行sudo的權限,當A前面帶有%的時候,代表的是使用者組。
例如
admin all = (all) all
這行指令表示admin使用者可以登陸到任意主機,并且可以提權到任意使用者,并且可以執行任意指令,但需要輸入使用者admin到密碼。
如果在admin前面加上%就會使得admin組的所有使用者擁有這些權限,使用的時候需要輸入對應使用者的密碼。而這一行指令典型的就是省略了第四個屬性,也就是D,D代表的是密碼。
第二部分B
B代表使用者可以在哪些電腦上使用這些特權,這一個字段一般是主機名。
例如:
jack mycomputer=/usr/sbin/reboot,/usr/sbin/shutdown
上面這行表示jack可以在mycomputer上提權到root使用者,并且允許以root權限使用reboot與shutdown指令,但是需要輸入jack的密碼才可以。
第三部分C
代表的是允許提權到的目标使用者與組,例如(root:root)的意思就是提權到root使用者root組,也就是目前使用者使用sudo指令的時候會獲得與root使用者root組相同的權限。
當C參數隐藏的時候,預設提權權限就是root。如果是all的話就是指的可以提權到任意使用者任意權限。
第四部分D
這個參數是用來定義當目标使用者使用sudo的時候,是否需要輸入使用者密碼。如果為
NOPASSWD:
則表示不需要,否則為需要,注意字母後面帶了冒号。
第五部分E
表示允許執行的指令。
舉例
參數 | 含義 |
---|---|
%admin ALL=(ALL) ALL | 允許admin使用者組的所有使用者在任意主機上,在輸入目前使用者密碼的情況下使用sudo指令提權到任意使用者,并且允許提權使用所有指令 |
lucy test=(ALL) NOPASSWD: /bin/useradd | 允許lucy在test主機上提權到任意使用者,并且在步輸入密碼的情況下可以提權使用useradd指令 |
papi ALL=(root) NOPASSWD: /bin/chown,/usr/sbin/useradd | 允許papi登陸到任意主機,允許提權到root權限,允許在不輸入密碼到情況下使用chown指令,但是useradd指令隻允許在輸入papi密碼到情況下使用 |
釋出者:全棧程式員棧長,轉載請注明出處:https://javaforall.cn/151346.html原文連結:https://javaforall.cn