Sudo

/etc/sudoers.d 中的文件是否按特定順序讀取?

  • July 16, 2019

/etc/sudoers.d 中的文件是否按特定順序讀取?如果是這樣,該排序的約定是什麼?

man sudoers,使用此命令找到的確切位置:

$ LESS='+/sudo will suspend processing' man sudoers

文件按排序的詞彙順序進行解析。也就是/etc/sudoers.d/01_first會在解析之前/etc/sudoers.d/10_second。請注意,因為排序是詞法的,而不是數字的,所以/etc/sudoers.d/1_whoops會在/etc/sudoers.d/10_second. 文件名中一致數量的前導零可以避免此類問題。

那是在標題下:Including other files from within sudoers

$ LESS='+/Including other files from within sudoers' man sudoers

詞法順序也稱為“字典順序”,由環境變數定義的值給出,LC_COLLATE當語言環境是C(數字然後大寫字母然後小寫字母)。這與 給出的順序相同LC_COLLATE=C ls /etc/sudoers.d/

包含的文件列表和載入它們的特定順序可以通過以下方式公開:

$ visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/README: parsed OK
/etc/sudoers.d/me: parsed OK
/etc/dirtest/10-defaults: parsed OK
/etc/dirtest/1one: parsed OK
/etc/dirtest/2one: parsed OK
/etc/dirtest/30-alias: parsed OK
/etc/dirtest/50-users: parsed OK
/etc/dirtest/Aone: parsed OK
/etc/dirtest/Bone: parsed OK
/etc/dirtest/aone: parsed OK
/etc/dirtest/bone: parsed OK
/etc/dirtest/zone: parsed OK
/etc/dirtest/~one: parsed OK
/etc/dirtest/éone: parsed OK
/etc/dirtest/ÿone: parsed OK

請注意,訂單不是 UNICODE 而是 C。

引用自:https://unix.stackexchange.com/questions/423294