如何阻止 yum 更改文件权限

如何阻止 yum 更改文件权限

如果升级软件包,yum 会将文件权限设置为新版本软件包中设置的权限。

我怎样才能阻止它这样做?

我使用 puppet,默认情况下放置 puppet 配置的目录是 755,由 root 拥有。但是我希望 root 以外的用户能够写入该目录,因此我更改了权限。但是当我运行时,yum upgrade puppet它将权限更改回之前的状态。我希望它保留已存在的目录/文件的权限。

编辑:进行升级然后手动将权限设置回我想要的权限并不是真正的选择,因为其中一个目录是CIFS只读的安装,所以即使 root 也无法更改这些目录的权限。

答案1

您想要做的是禁用核心 rpm 功能。 rpm 中包含的所有文件都与校验和、它们的权限以及一些附加/可选标志一起存储在包中。没有办法禁用权限的更改,因为基本上您希望能够在触及包中的任何文件时恢复默认权限,或者例如用于验证所有文件、权限和校验和。

您能否添加 的输出
rpm -q --qf '[%{filenames}: %{filemodes:perms}\t%{fileflags}\n]' puppet
并标记包含配置的目录,以及
rpm -qf /directory包含配置的目录的输出?

另一种方法可能是使用setfacl -m添加高手对于用户的该目录,不应覆盖该目录。

另一种方法可能是使用 rpm 文件触发器,但这非常复杂,而且它们不是标准的 - 简短的搜索表明 CentOS/RHEL/Fedora 似乎不支持它们。

相关内容