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ê.
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
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ê.
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.