em sudoers, como testar se um alias já está definido, para evitar dupl definições

1

Eu preciso ativar um comando para vários usuários, ativados quando os usuários são criados. Atualmente eu tenho algo como (em um SLES 12 SP1 Linux)

Cmnd_Alias S3CP = /usr/local/bin/prog param1 param2 * # constraining usage
u1 ALL=(u1-helper) NOPASSWD: S3CP
u2 ALL=(u2-helper) NOPASSWD: S3CP
u3 ALL=(u3-helper) NOPASSWD: S3CP
# etc...

O que eu gostaria de fazer é remover esses enfeites locais do conf principal e colocá-los em /etc/sudoers.d/ para melhor gerenciar as alterações nas configurações

90-myapp-u1.conf # containing the Cmnd_Alias and the authorization
90-myapp-u2.conf # similarly

Mas isso pode causar duplicatas Cmnd_Alias definições do segundo usuário em diante. Existe uma maneira de verificar se um alias já está definido e pular um comando? Analogamente a uma regra de correspondência ou #ifndef. OU existe alguma outra maneira idiomática de fazer o mesmo? Eu não quero inline o alias de comando.

Muito obrigado.

    
por Dinesh 02.03.2017 / 19:53

1 resposta

1

A melhor solução para fragmentos seria simplesmente colocar seu S3CP em seu próprio fragement separado do uso dele. Então faça algo assim. Em seguida, seria no seu sistema de gerenciamento de configuração para se certificar de que o s3cp é sempre instalado antes de adicionar outros fragmentos que tentam usá-lo.

/etc/sudoers.d/s3cp

Cmnd_Alias S3CP = /usr/local/bin/prog param1 param2 * # constraining usage

/etc/sudoers.d/u1

u1 ALL=(u1-helper) NOPASSWD: S3CP

/etc/sudoers.d/u2

u2 ALL=(u2-helper) NOPASSWD: S3CP

/etc/sudoers.d/u3

u3 ALL=(u3-helper) NOPASSWD: S3CP
    
por 02.03.2017 / 20:33

Tags