Os arquivos em /etc/sudoers.d são lidos em uma ordem específica?

4

Os arquivos em /etc/sudoers.d são lidos em uma ordem específica? Em caso afirmativo, qual é a convenção para esse pedido?

    
por MountainX 10.02.2018 / 23:45

2 respostas

12

A partir de man sudoers , a posição exata encontrada com este comando:

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

Files are parsed in sorted lexical order. That is, /etc/sudoers.d/01_first will be parsed before /etc/sudoers.d/10_second. Be aware that because the sorting is lexical, not numeric, /etc/sudoers.d/1_whoops would be loaded after /etc/sudoers.d/10_second. Using a consistent number of leading zeroes in the file names can be used to avoid such problems.

Está sob o título: Including other files from within sudoers

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

A ordem léxica também é chamada de "ordem do dicionário", conforme determinado pelos valores definidos pela variável de ambiente LC_COLLATE quando a localidade é C (números, em seguida, Uppercae e, em seguida, letras minúsculas). Essa é a mesma ordem dada por LC_COLLATE=C ls /etc/sudoers.d/ .

A lista de arquivos incluídos e a ordem específica na qual eles são carregados podem ser expostos com:

$ 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

Observe que o pedido não é Unicode, mas C.

    
por 10.02.2018 / 23:52
2

Do manual sudoers (referente à diretiva #includedir ):

#includedir /etc/sudoers.d

sudo will read each file in /etc/sudoers.d, skipping file names that end in ~ or contain a . character to avoid causing problems with package manager or editor temporary/backup files. Files are parsed in sorted lexical order. That is, /etc/sudoers.d/01_first will be parsed before /etc/sudoers.d/10_second. Be aware that because the sorting is lexical, not numeric, /etc/sudoers.d/1_whoops would be loaded after /etc/sudoers.d/10_second. Using a consistent number of leading zeroes in the file names can be used to avoid such problems.

Veja man 5 sudoers .

A ordem lexical mencionada acima é a mesma que você obtém de ls (ou echo * ) na C ou POSIX locale.

    
por 10.02.2018 / 23:51