私のCentOSシステムを設定するために、タイムスタンプとコンテンツ以外のほとんどすべての属性を保持する任意のファイルを上書きしたいと思います。CentOS7:ファイルをコピーしてSELinuxのコンテキストを保存する
例として、私は/etc/phpMyAdmin/config.inc.php
注意を使用します:コピーされたファイルは、他のファイルシステムである
[[email protected] phpMyAdmin]# ls -laZ /etc/phpMyAdmin/
drwxr-x---. root apache system_u:object_r:etc_t:s0 .
drwxr-xr-x. root root system_u:object_r:etc_t:s0 ..
-rw-r-----. root apache system_u:object_r:etc_t:s0 config.inc.php
[[email protected] phpMyAdmin]# /bin/cp -frv --backup=numbered --preserve=mode,ownership,context,xattr config.inc.php /etc/phpMyAdmin/config.inc.php
«config.inc.php» -> «/etc/phpMyAdmin/config.inc.php» (respaldo: «/etc/phpMyAdmin/config.inc.php.~1~»)
[[email protected] phpMyAdmin]# ls -laZ /etc/phpMyAdmin/
drwxr-x---. root apache system_u:object_r:etc_t:s0 .
drwxr-xr-x. root root system_u:object_r:etc_t:s0 ..
-rw-r-----. root apache system_u:object_r:unlabeled_t:s0 config.inc.php
-rw-r-----. root apache system_u:object_r:etc_t:s0 config.inc.php.~1~
[[email protected] phpMyAdmin]# systemctl restart httpd
私はhttp://localhost/phpmyadmin
をしようとしたとき、「拳の時間が、私はSELinuxの警告を取得し、Apacheができますファイルにアクセスできません。
[[email protected] phpMyAdmin]# chcon --reference /etc/phpMyAdmin/config.inc.php.~1~ /etc/phpMyAdmin/config.inc.php
[[email protected] phpMyAdmin]# ls -laZ /etc/phpMyAdmin/
drwxr-x---. root apache system_u:object_r:etc_t:s0 .
drwxr-xr-x. root root system_u:object_r:etc_t:s0 ..
-rw-r-----. root apache system_u:object_r:etc_t:s0 config.inc.php
-rw-r-----. root apache system_u:object_r:etc_t:s0 config.inc.php.~1~
[[email protected] phpMyAdmin]# systemctl restart httpd
これでApacheがファイルを読み取ることができます。
元のファイルのSELinuxコンテキストを保持するにはどうすればよいですか?
私は多くのCPオプション(リンクで示されたもの)を、試してみました - preserve = contextと--no-preserve = contextですが、結果は常に同じで、apacheはファイルを使用できず、** unlabeled_t **属性が設定されています。コピーapacheがファイルを使用できるようになった後でchconを使用するだけです。おそらくcpのバグ? –
こんにちはカルロス、別のファイルシステム上の宛先ファイルですか?どのファイルシステムタイプですか?ボリュームはどこにマウントしますか? –
ソースファイルシステムはext4で、/ mnt/sharedにマウントされています。宛先(ルート)ファイルシステムはext3です。 –