Permite quaisquer argumentos para um dado comando com sudo [closed]

1

Eu tenho a seguinte entrada de configuração do sudo que adicionei via sudo visudo :

mark ALL = NOPASSWD: /usr/bin/lxc-ls*

Eu posso executar lxc-ls com meu usuário, mas não posso acrescentar nenhum parâmetro sem exigir que eu prefixe o comando com sudo .

$ whoami
mark
$ lxc-ls
test-container
$ lxc-ls --fancy
lxc-ls: error: You must be root to access advanced container properties. Try running: sudo /usr/bin/lxc-ls

Alguma ideia de como eu posso editar via sudo visudo para permitir qualquer argumento após o comando?

Eu não quero prefixar o comando com o sudo como eu estou usando uma biblioteca python para executar o comando e está sendo engraçado sobre os prefixos do sudo.

Atualização:

Eu tentei remover o * , mas também não funcionou:

$ sudo grep '\-ls' /etc/sudoers
mark ALL = NOPASSWD: /usr/bin/lxc-ls
$ lxc-ls
test-container
$ lxc-ls --fancy
...
lxc-ls: error: You must be root to access advanced container properties. Try running: sudo /usr/bin/lxc-ls
    
por Mark L 11.11.2013 / 07:57

2 respostas

5

No manual do sudoers :

A simple file name allows the user to run the command with any arguments he/she wishes

Então, solte o *.

Você ainda precisará prefixar o comando lxc-ls com o sudo ou escrever um wrapper simples que faça isso para você.

    
por 11.11.2013 / 08:02
5

Não é assim que sudo funciona. O arquivo sudoers simplesmente concede ao usuário direitos para um comando quando prefixado pelo comando sudo , não para que você possa executá-lo sem que o sudo seja prefixado. Você precisaria escrever um script wrapper (como um arquivo bash simples) para executar o comando se o seu próprio script não puder fazê-lo.

    
por 11.11.2013 / 13:21