Um comando no arquivo sudoers pode ser restringido sem o uso de opções ou um argumento

0

No arquivo sudoers podemos restringir a execução de um comando sem opções

por exemplo, /bin/su deve falhar e qualquer outra coisa após su com mais de 4 caracteres deve ser executada. Exemplo:

sudo su daniel

deve ser executado

michael ALL=(ALL) NOPASSWD:ALL, /bin/su [a-z]{5,}

Apenas tentando nestes termos

De qualquer forma, para conseguir isso?

    
por mslinux1 16.08.2017 / 02:04

1 resposta

1

Você pode usar curingas em uma especificação de comando sudoers. Para permitir executar /bin/su apenas com um argumento que comece com 5 letras minúsculas seguido por qualquer número de outros argumentos, você pode usar

michael ALL=(ALL) NOPASSWD: /bin/su [a-z][a-z][a-z][a-z][a-z]*

Não há como restringir a um único argumento, a menos que esse argumento tenha um tamanho fixo, porque o único caractere curinga que pode corresponder a uma string de tamanho variável é * e também corresponde aos limites de argumentos.

Se você precisar de regras mais complicadas, configure o sudo para permitir a execução de um script de wrapper e execute a verificação de argumentos nesse script de wrapper.

…: ALL, /bin/su … não faz sentido, pois ALL já permite comandos arbitrários. É apenas equivalente a …: ALL .

Não está claro qual é a semântica pretendida dessa configuração de sudoers, pois você focou em uma implementação específica, em vez de uma meta . Se você quiser permitir que Michael execute comandos arbitrários como certos usuários sem uma senha, invocar su é uma maneira indireta de fazer isso. Sudo já faz privilégio de elevação, por que usar o su no topo? Defina um conjunto de usuários e permita que Michael execute comandos arbitrários como qualquer um desses usuários.

User_Alias target_users = alice, charlie, dominique
michael ALL = (target_users) NOPASSWD: ALL
    
por 17.08.2017 / 00:37

Tags