2017-05-09 12 views
0

私の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コンテキストを保持するにはどうすればよいですか?

答えて

0

cpのマニュアルによれば、スイッチ "--preserve = context"は、プロセス中にSelinuxコンテキストもコピーすることを許可します。

のredhatから、この優れたドキュメントに見てください、それは人間の言語で素晴らしくトピックについて説明します。

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-Maintaining_SELinux_Labels_.html

+0

私は多くのCPオプション(リンクで示されたもの)を、試してみました - preserve = contextと--no-preserve = contextですが、結果は常に同じで、apacheはファイルを使用できず、** unlabeled_t **属性が設定されています。コピーapacheがファイルを使用できるようになった後でchconを使用するだけです。おそらくcpのバグ? –

+0

こんにちはカルロス、別のファイルシステム上の宛先ファイルですか?どのファイルシステムタイプですか?ボリュームはどこにマウントしますか? –

+0

ソースファイルシステムはext4で、/ mnt/sharedにマウントされています。宛先(ルート)ファイルシステムはext3です。 –

関連する問題