Verificação de sanidade do Visudo para todo o ecossistema de arquivos incluídos?

1

É possível executar uma verificação visudo de integridade para um arquivo no contexto de outros arquivos incluídos em /etc/sudoers.d ?

Cenário:

Eu quero adicionar um novo arquivo ao /etc/sudoers.d do arquivo em si, e ele passa o visudo -c parser.

No entanto, ele contém uma linha Cmnd_Alias que entra em conflito com outro arquivo em etc/sudoers.d .

Se movido para um /etc/sudoers.d , ele quebraria o comando sudo com o erro Alias '<name>' already defined near line .

Pergunta:

Existe algum método que eu possa empregar para verificar se o novo arquivo não quebraria o sudo depois de colocá-lo em sudoers.d ?

Ou existe algum método para fazer sudo ignorar / parar o processamento dos arquivos incluídos se algum erro foi encontrado?

    
por techraf 02.01.2016 / 03:34

1 resposta

4

Você pode tentar verificar uma concatenação de /etc/sudoers e o novo arquivo proposto:

sudo bash -c 'visudo -cf <(cat /etc/sudoers /path/to/to-be-added-file)'

Como visudo analisará o #includedir em /etc/sudoers , todos os arquivos relevantes em sudoers.d também serão verificados.

$ sudo cat /etc/sudoers.d/foo
Cmnd_Alias FOO = /bin/bar
$ sudo cat /tmp/bar
Cmnd_Alias FOO = /bin/foo
$ sudo bash -c 'visudo -cf <(cat /etc/sudoers /tmp/bar)'
>>> /dev/fd/63: Alias 'FOO' already defined near line 31 <<<
parse error in /dev/fd/63 near line 31
    
por 02.01.2016 / 04:00

Tags