パッケージをアップグレードする場合、yum は新しいバージョンのパッケージに設定されたファイル権限を設定します。
これをどのように防ぐことができますか?
私はpuppetを使用していますが、デフォルトではpuppet設定を持つディレクトリはrootが所有する755です。しかし、root以外のユーザーもディレクトリに書き込むことができるように、権限を変更しました。ただし、実行すると、yum upgrade puppet
権限が以前の状態に戻ります。すでに存在するディレクトリ/ファイルの権限を保存したいと思います。
編集:アップグレードを実行し、手動で権限を必要に応じてリセットすることは、実際にはオプションではありません。これは、ディレクトリの1つがCIFS
読み取り専用マウントであるため、ルートもそのディレクトリの権限を変更できないためです。
ベストアンサー1
あなたが望むのは、コアrpm機能を無効にすることです。 rpmに含まれるすべてのファイルは、チェックサム、その権限、およびいくつかの追加/選択フラグとともにパッケージに保存されます。デフォルトでは、パッケージ内のファイルをタッチするときにデフォルトの権限を復元したり、たとえばすべてのファイル、権限、およびチェックサムを確認したいので、権限の変更を無効にする方法はありません。
rpm -q --qf '[%{filenames}: %{filemodes:perms}\t%{fileflags}\n]' puppet
設定を含むディレクトリと設定
rpm -qf /directory
を含むディレクトリの出力を追加して表示できますか?
setfacl -m
別のアプローチは追加を使用することです。所有者ユーザーはこのディレクトリを上書きしないでください。
別のアプローチは、rpmファイルトリガを使用することですが、これは非常に複雑で標準ではありません。簡単な検索によると、CentOS / RHEL / Fedoraはそれをサポートしていないようです。