Comment arrêter yum en modifiant les permissions de file

Si vous mettez à niveau un package, yum définit les permissions de file sur les permissions définies dans la nouvelle version du package.

Comment puis-je arrêter ça?

J'utilise la marionnette, et par défaut le directory dans lequel vous configurez la marionnette est 755 et appartient à root. Cependant, je veux qu'un user autre que root puisse écrire dans ce directory, alors j'ai changé les permissions. Mais quand yum upgrade puppet il remet les permissions à la façon dont ils étaient avant. Je veux qu'il laisse les permissions seules pour les directorys / files qui existent déjà.

Edit: faire la mise à niveau, puis rétablir les permissions manuellement n'est pas vraiment une option, car l'un des directorys est un assembly CIFS lecture seule, donc root ne peut pas changer les permissions de ces directorys.

Ce que vous voulez faire est de désactiver la fonctionnalité de base du RPM. Tous les files contenus dans un rpm sont stockés avec une sum de contrôle, leurs permissions et des drapeaux supplémentaires / facultatifs dans un package. Il n'y a aucun moyen de désactiver la modification des permissions, car vous voulez essentiellement pouvoir restaurer les permissions par défaut si un file du package a été touché, par exemple pour la vérification de tous les files, permissions et sums de contrôle.

Pourriez-vous append la sortie de
rpm -q --qf '[%{filenames}: %{filemodes:perms}\t%{fileflags}\n]' puppet
et marquer le directory où la config est contenue, ainsi que la sortie de
rpm -qf /directory pour le directory contenant la config?

Une autre approche pourrait être d'utiliser setfacl -m pour append un ACE pour ce directory à l'user, qui ne devrait pas être écrasé.

Une approche différente pourrait être d'utiliser des filsortingggers rpm, mais c'est assez complexe, et ils ne sont pas standard – une courte search montre que CentOS / RHEL / Fedora ne les supporte apparemment pas.