Correspondência de caracteres curinga com vários argumentos para o arquivo sudoers?

1

Estou tentando descobrir como criar uma entrada no sudoer, onde eu permito um conjunto limitado de argumentos, algum opcional, mas o comando ainda é muito restritivo.

Existe alguma maneira fácil de limitar essas restrições?

Eu gostaria que o usuário pudesse executar com o sinalizador -w e valor opcional, mas ainda assim ser restritivo. Eu não quero codificar valores para a opção -w. O usuário deve ser capaz de executar qualquer um desses comandos, sendo 10 qualquer dígito.

/usr/bin/iptables -nvL *
/usr/bin/iptables -w -nvL *
/usr/bin/iptables -w 10 -nvL *

Eu criei essas 4 entradas. Existe uma maneira melhor de ter valores opcionais definidos?

username ALL=(root) NOPASSWD: /usr/bin/iptables -nvL *
username ALL=(root) NOPASSWD: /usr/bin/iptables -w -nvL *
username ALL=(root) NOPASSWD: /usr/bin/iptables -w [[\:digit\:]] -nvL *
username ALL=(root) NOPASSWD: /usr/bin/iptables -w [[\:digit\:]][[\:digit\:]] -nvL *
    
por LF4 27.09.2017 / 22:54

1 resposta

2

Você pode usar a função Cmnd_Alias .

Cmnd_Alias ITEM_IPTABLES = /usr/bin/iptables (-w)? [[\:digit\:]]* -nvL *

Em seguida, adicione o Cmnd_Alias que você definiu à lista de comandos que você deseja ignorar perguntando a senha por sudo .

USERNAME ALL=(root) NOPASSWD: ITEM_IPTABLES

De man 5 sudoers :

? Means that the preceding symbol (or group of symbols) isoptional.
That is, it may appear once or not at all.

* Means that the preceding symbol (or group of symbols) may appear zero or more times.

Os parênteses são usados para definir o grupo de símbolos.

    
por 28.09.2017 / 06:35

Tags