Por que as diretivas #include e #includedir no sudo são prefixadas com o caractere de libra (#)

36

Ao configurar um sudoambiente, notei que a diretiva include é prefixada com o caractere de libra (#).

O Solaris mostra isso como:

## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d

O manual (Linux e Solaris) declara:

Incluindo outros arquivos de dentro de sudoers É possível incluir outros arquivos de sudoers do arquivo de sudoers atualmente sendo analisados ​​usando as diretivas #include e #includedir.

E:

Outros caracteres especiais e palavras reservadas O sinal de cerquilha (`# ') é usado para indicar um comentário (a menos que faça parte de uma diretiva #include ou a menos que ocorra no contexto de um nome de usuário e seja seguido por um ou mais dígitos, nesse caso, é tratado como um uid). O caractere de comentário e qualquer texto a seguir, até o final da linha, são ignorados.

Alguém sabe por que a escolha foi feita para usar o caractere de libra nas diretivas #includee #includedir?

Como uma observação lateral: costumo usar algo como egrep -v '^#|^$' configfilepara obter as configurações não padrão / ativas, e isso obviamente não funciona para o sudoersarquivo.

Lambert
fonte

Respostas:

38

#includefoi adicionado em 2004 . Tinha que ser compatível com o que já estava lá. Eu não acho include /path/to/fileque teria sido ambíguo, no entanto, mas poderia ter sido um pouco mais difícil de analisar, porque o analisador precisaria distinguir include /path/to/file(incluir diretiva) de include = foo(permitir que o usuário includeexecute o comando foo).

Mas acho que o motivo principal era se parecer com o pré-processador C, que o manual cita explicitamente como inspiração.

Gilles 'SO- parar de ser mau'
fonte
11
Boa captura e explicação, infelizmente essas explicações são removidas dos manuais (pelo menos no Ubuntu, RedHat, OpenBSD e Solaris).
11788 Lambert
2
A primeira vez que analisei meu sudoersarquivo, pensei que includefosse uma diretiva e #includeuma diretiva comentada . A regra da menor surpresa violou com força. Na minha opinião, é um design ruim.
Kamil Maciorowski