天天看點

/etc/sudoers檔案解析前言規則講解舉例

大家好,又見面了,我是你們的朋友全棧君。

CATALOG

  • 前言
  • 規則講解
    • 第一部分A
    • 第二部分B
    • 第三部分C
    • 第四部分D
    • 第五部分E
  • 舉例

前言

/etc/sudoers檔案一般涉及到linux系統中關于sudo指令的權限配置問題。

/etc/sudoers檔案解析前言規則講解舉例

規則講解

sudoers檔案的資料,每一行分為五個部分,我們用ABCDE來表示。

一般情況下是: A B = {©} {D} E

且C與D是可以省略的,我們用大括号擴起來友善大家注意到,但真正書寫指令的時候不需要打括号。

  • 第一個部分

    A

    代表授權使用sudo的使用者或者組
  • 第二部分

    B

    代表允許授權使用者在哪些主機上使用這些權利
  • 第三部分

    C

    代表允許被授權使用者提權到什麼使用者什麼組級别的權限,如果省略就代表允許提權到任意使用者級别。
  • 第四部分

    D

    代表當被授權使用者是否需要輸入自身密碼來使用特權,若省略這代表需要輸入密碼
  • 第五部分

    E

    代表允許執行的指令,如果是all就代表允許執行所有指令

第一部分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