rpm -Vf não relata um arquivo alterado

0

Estou tentando escrever um módulo de fantoches que escreve uma configuração modelada, mas onlyif é a configuração de estoque do RPM (para não estragar qualquer formatação que esteja ocorrendo). O restante do gerenciamento de configuração é feito através do augeas. Anteriormente isso funcionava, mas por algum motivo rpm -Vf não está imprimindo que o smb.conf realmente varia de quando foi instalado pela primeira vez. Por exemplo, eu fiz alterações pesadas para ele e seu timestamp ainda:

[root@vlmat ~]# rpm -Vf /etc/samba/smb.conf
[root@vlmat ~]# echo $?
0

Não reflete que o md5sum foi alterado, nem altera o código de retorno.

E o smb.conf está no banco de dados rpm, mas a verificação de todo o pacote não produz nada:

[root@vlmat ~]# rpm -qf /etc/samba/smb.conf
samba-common-3.6.23-35.el6_8.x86_64
[root@vlmat ~]# rpm -V samba-common
[root@vlmat ~]#

Depois de editar outro arquivo de configuração nesse rpm:

[root@vlmat ~]# rpm -V samba-common
S.5....T.  c /etc/sysconfig/samba

A soma SHA256 difere da que o banco de dados tem:

[root@vlmat ~]# rpm -ql --dump samba-common | grep smb
/etc/samba/smb.conf 9778 1461617087 2474992be3adf11ef60aa754151f19b5756aaf9919cd6eacbd3f6b75c303dbb1 0100644 root root 1 0 0 X
[...snip..]
[root@vlmat ~]# sha256sum /etc/samba/smb.conf
270cd0ca5bce64448c31dc6c8e01d12f3d1217b8c208008a1dd1ddc976714774  /etc/samba/smb.conf

Parece que lembro desse método antes, mas não tenho certeza do que poderia ter mudado.

EDITAR:

Eu trabalhei em torno do problema tendo um script bash copiando o template se a soma de verificação do sha256 no arquivo e no DB são os mesmos, mas eu gostaria de uma explicação / solução alternativa para o método acima, pois acho que deveria funcionar. Por que ele vê a alteração em um arquivo de configuração, mas não no que eu estava vendo?

    
por Bratchley 14.06.2016 / 18:21

2 respostas

1

O criador de um arquivo de especificação rpm pode substituir os itens padrão para verificar a verificação de um determinado arquivo. Por exemplo,

%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/samba/smb.conf

significa que não verifica o md5sum do arquivo (tamanho ou mtime). Eles ainda são registrados no banco de dados, mas a variação será suprimida durante uma operação -V . Ainda é possível listar todas as verificações adicionando -v ao seu -V (embora meu rpm mostre uma diferença de md5 se houver um sem isso).

 $ rpm -Vvf /etc/samba/smb.conf | grep /etc/samba/smb.conf
 .........  c /etc/samba/smb.conf
    
por 14.06.2016 / 19:56
0

Arquivos de configuração, como smb.conf , são frequentemente usados pelos administradores de sistema, portanto, não faz sentido que rpm verifique algo que será alterado. "stock" também será apenas o que foi instalado na primeira instalação de smb.conf ; o conteúdo deste arquivo pode variar se a versão de samba instalada pela primeira vez tiver alterado seu smb.conf e, se um sysadmin tiver modificado /etc/smb.conf , esses (novos!) valores de ações poderão aparecer em /etc/smb.conf.rpmnew . / p>

Por que, em vez disso, o gerenciamento de configuração não especifica o que o smb.conf deve conter e somente altera a configuração se ele se afastar desse estado? Isso evitaria as complicações de ter que manter uma lista de configurações de estoque ao longo do tempo e lidaria melhor com casos em que algo criasse um smb.conf que não é o estoque nem a versão especificada pelo gerenciamento de configuração.

    
por 14.06.2016 / 19:08

Tags