Como adiciono sudoers.d de um rpm personalizado

1

Eu tenho um RPM personalizado que eu criei que precisa adicionar entradas aos sudoers para que eu tenha entradas adicionadas a um arquivo no meu RPM /etc/sudoers.d/mypackage e coloque meus comandos sudo lá.

Os arquivos são adicionados e o RPM é gerado. Infelizmente, quando tento instalar o pacote, ele reclama:

file /etc/sudoers.d from install of mypackage-1.0.0-1.x86_64 conflicts with file from sudo-1.8.6p7016.el7.x86_64

O rpm será instalado bem se eu o instalar com --force como:

rpm -Uvh --force mypackage.rpm

Eu provavelmente poderia fazer eco do conteúdo do arquivo sudoers em /etc/sudoers.d , mas eu preferiria que o arquivo sudoers fosse rastreado com o rpm.

Como adiciono entradas a sudoers de um RPM personalizado sem queixas de sudo?

EDIT: Para esclarecer meu post um pouco, tenho uma dúzia de diretórios preenchidos com arquivos:

/etc/sudoers.d
/etc/httpd/conf.d/
/etc/systemd/system
/etc/cron.d
...

Como eu não tenho de antemão a lista de diretórios e esta lista pode mudar, tentei fazer é:

%files
/etc/*
%exclude /etc/sudoers.d
/etc/sudoers.d/*

mas, nesse momento, os arquivos em sudoers.d não são incluídos. Se eu quisesse mencionar diretórios, um por um, eu teria que gerar dinamicamente essa lista de diretórios

Como foi sugerido, tentei rpm -qf /etc/sudoers.d e ele diz sudo-1.8.5.el7_2.x86_64 . Se eu fizer rpm -qf /etc/systemd/system , ele diz systemd-219-19.el7_2.x86_64 , mas o rpm não reclama quando eu tento instalar o rpm

    
por Youn Elan 25.06.2016 / 23:09

1 resposta

2

Provavelmente, porque na seção %files você tem algo assim:

%files
/etc/sudoers.d/

Isso faz com que seu pacote não inclua apenas os arquivos em /etc/sudoers.d ; mas também o próprio diretório. Você pode verificar isso usando rpm -qlp <generated-rpm> .

rpm não permite que pacotes diferentes forneçam o mesmo arquivo ou diretório. A solução é apenas empacotar os arquivos dentro deste diretório:

%files
/etc/sudoers.d/*
    
por 27.06.2016 / 09:42