sudo: Como permitir apenas um argumento para um comando?

7

Eu quero adicionar uma entrada aos meus suoders para permitir que um usuário execute um comando com exatamente um argumento não-opcional.

# tail -1 /etc/sudoers
ALL     ALL = (:tool) NOPASSWD: /bin/echo [a-z]*
$ sudo -g tool /bin/echo abc def
abc def
$ sudo -g tool /bin/echo -abc def
[sudo] password for user: 

Posso fazer isso usando o sudoers sytnax? Ou preciso criar um script auxiliar?

    
por Elrond 23.05.2013 / 14:42

1 resposta

7

No meu conhecimento, você não pode passar argumentos não-comandos para o sudo se esse argumento variar.

Você pode especificar algo assim:

users ALL=(ALL) NOPASSWD: /usr/bin/tail /some/file

Isso permitiria que o usuário alterasse alguns arquivos, mas não outros arquivos.

Se você precisar passar uma variável, recomendo um script de wrapper.

Aqui está um exemplo de um wrapper rsync:

link

Se você pesquisar no Google por wrappers do sudo, poderá encontrar muitos outros exemplos.

Certifique-se de codificar todos os caminhos e executar verificações de integridade na entrada, caso o usuário não seja confiável.

    
por 23.05.2013 / 15:26

Tags