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

Mou*_*inX 6 sudo configuration

/etc/sudoers.d 中的文件是否按特定顺序读取?如果是这样,该排序的约定是什么?

ImH*_*ere 18

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

$ LESS='+/sudo will suspend processing' man sudoers
Run Code Online (Sandbox Code Playgroud)

文件按排序的词法顺序进行解析。也就是说,/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
Run Code Online (Sandbox Code Playgroud)

词法顺序也称为“字典顺序”,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
Run Code Online (Sandbox Code Playgroud)

注意顺序不是UNICODE而是C。