Expansão variável no arquivo sudoers

1

Em /some/long/and/annoying/path tenho vários scripts para os quais preciso dar acesso ao sudo, então escrevo no meu /etc/sudoers (A) :

Cmnd_Alias MY_SCRIPTS = /some/long/and/annoying/path/foo.sh, \
                        /some/long/and/annoying/path/bar.sh, \
                        /some/long/and/annoying/path/baz.sh, \
                        /some/long/and/annoying/path/qux.sh, \
                        /some/long/and/annoying/path/quux.sh, ...

Mas eu não gosto de me repetir.

Eu percebo que posso escrever (B) :

Cmnd_Alias MY_SCRIPTS = /some/long/and/annoying/path/

Para cobrir todos os scripts em /some/long/and/annoying/path/ , mas gosto do controle de especificar cada arquivo pelo nome.

Então, minha pergunta é:

Existe uma sintaxe como (C) :

MY_DIR = /some/long/and/annoying/path
Cmnd_Alias MY_SCRIPTS = $MYDIR/foo.sh, \
                        $MYDIR/bar.sh, \
                        $MYDIR/baz.sh, \
                        $MYDIR/qux.sh, \
                        $MYDIR/quux.sh, ...

Isso será explícito e DRY?

Note que: Não é uma resposta aceitável que me permitirá continuar com a minha vida.

    
por Chen Levy 01.03.2016 / 15:45

1 resposta

2

Não tenho certeza se isso se aplica ao seu caso, mas se você quiser que todos os scripts em um diretório sejam executados usando o sudo por um determinado usuário, use a seguinte construção:

username ALL=(ALL) NOPASSWD: /some/ungodly/long/directory/name/

observe o trailing / , o que implica que todos os arquivos no diretório sejam permitidos pelo sudo.

Mesmo que não seja o seu caso, você ainda pode fazer cópias de seus scripts no bloco de alias do comando sudoers, movê-los para um diretório diferente e usar a construção acima.

    
por 01.03.2016 / 15:52

Tags