
Existe uma maneira de ter uma entrada sudoers que permita a execução apenas de um comando específico, sem argumentos extras? Não consigo encontrar um recurso que descreva como a correspondência de comandos funciona com sudoers.
Digamos que eu queira conceder sudo para /path/to/executable arg
.
Uma entrada como a seguinte:
user ALL=(ALL) /path/to/executable arg
permitir estritamente o acesso sudo a um comando que corresponda exatamente a isso? Ou seja, não concede privilégios sudo ao usuário para /path/to/executable arg arg2
?
Responder1
Encontro o seguinte em man sudoers
, perto da definição Cmnd_List:
A simple filename allows the user to run the command with any arguments
he/she wishes. However, you may also specify command line arguments
(including wildcards). Alternately, you can specify "" to indicate
that the command may only be run without command line arguments.
Isto parece implicar que permitir especificamente "arg" não permitiria "arg arg2". Por outro lado, tenho visto alguma inconsistência na forma como o arquivo sudoers é processado em diferentes sistemas operacionais (Linux vs Solaris, por exemplo). Portanto, você deve testar em seu próprio ambiente.
Uma solução alternativa um tanto feia: crie um script executável separado que execute o comando especificado apenas com o argumento desejado e conceda acesso sudo a esse script em vez de ao comando original.
#!/bin/bash
/path/to/executable arg