Sudo Cmnd_Alias ​​Argumentos opcionais

0

Eu gostaria de permitir que um comando seja executado sob o sudo com ou sem argumentos. Por exemplo, os dois devem funcionar:

 rm -f /etc/stuff
 rm /etc/stuff/item.txt

Para que isso funcione, eu preciso disso em sudoers:

 Cmnd_Alias ITEM_RM = /bin/rm * /etc/*, /bin/rm /etc/*

Qual eu então atribuo a um grupo. Isso funciona. Mas isso me faz dobrar em todos os comandos. Eu gostaria de ter uma única entrada que faça as duas coisas:

 Cmnd_Alias ITEM_RM = /bin/rm {something goes here that does both} /etc/*

Eu sei que uma abordagem é envolver isso em um script. Eu não quero fazer isso. Tenho dezenas dessas entradas e preciso de todas elas para trabalhar e sem conhecer os argumentos com antecedência.

Eu também aceito que estou pedindo algo que é um risco de segurança. Nenhum valor em me lembrar disso. Eu estou indo para alguma segurança, não segurança apertada . Eu preciso evitar que o peole cause muito dano ao servidor, mas temos um firewall matador e esse servidor não é acessível a partir dele, então a segurança rígida está no nível corporativo.

Pensamentos bem-vindos!

James Madison
fonte

Respostas:

0

Minha experiência é que você não pode fazer isso com apenas uma declaração. Na verdade, o Cmnd_Alias ​​é projetado exatamente para esse propósito.

Parece que você está tentando restringir os usuários de serem capazes apenas de remover entradas em / etc / stuff. E quanto às entradas em seus diretórios pessoais?

Por que vale a pena, lembre-se de que todos, por padrão, têm acesso ao comando "rm", portanto, você não precisa conceder acesso explícito a eles. No entanto, eles só seriam capazes de agir em objetos para os quais a propriedade e as permissões se alinham. Você pode querer abordar seu problema a partir desse ângulo. (propriedade do grupo e associação, juntamente com configurações de umask).

Michael
fonte
Depois de um extenso trabalho nesta frente, eu concordo. Em vez disso, escrevi código para gerar as várias combinações de que preciso.
James Madison