Je voudrais commencer par dire qu'il n'y a pas vraiment de problème et que tout fonctionne comme je m'y attendais, mais je suis confronté à un comportement étrange que je ne peux pas expliquer, alors je cherche des informations .SELinux fcontext après svn checkout
Le comportement impair est observé avec la façon dont SELinux applique les définitions de mappage fcontext.
Permettez-moi de commencer par l'impression SELinux politiques de fcontext qui applique à mon cas:
[[email protected] wp-content]# semanage fcontext -l | grep "^/var/www.*httpd_sys_rw_content_t:s0\s$"
/var/www/svn(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html(/.*)?/uploads(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html(/.*)?/wp-content(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html(/.*)?/sites/default/files(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html(/.*)?/sites/default/settings\.php regular file system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/moodledata(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/moodle/data(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/gallery/albums(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html/owncloud/data(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html/configuration\.php all files system_u:object_r:httpd_sys_rw_content_t:s0
Comme vous pouvez le voir sur la commande, je suis intéressé par les politiques fcontext permettant httpd d'écrire à l'intérieur /var/www .
J'installe une installation de WordPress, donc mes yeux verrouiller sur ces politiques:
/var/www/html(/.*)?/uploads(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html(/.*)?/wp-content(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
De la RegExp politique, je peux desifer quelle structure le répertoire que je dois avoir. Créons un répertoire pour le projet et la caisse.
[[email protected] /]# mkdir -p /var/www/html/sun
[[email protected] /]# cd /var/www/html/sun
[[email protected] sun]# svn co http://server/ .
Vérifions si nous avons droit fcontext appliqué:
[[email protected] sun]# cd /var/www/html/sun/public/wp-content
[[email protected] wp-content]# ls -Z
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 index.php
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 languages
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 mu-plugins
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 plugins
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 themes
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 uploads
Great! Juste pour un intérêt et revérifier, essayons de restaurer fcontext et de voir ce qui se passe:
[[email protected] wp-content]# restorecon -Rv /var/www/html/sun/
[[email protected] wp-content]# ls -Z
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 index.php
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 languages
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 mu-plugins
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 plugins
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 themes
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 uploads
Great! Fonctionne comme prévu Pour terminer le test, simulons une panne attendue. Créons un répertoire de projet en dehors de /html/, comme ici: /var/www/sun et passez à la caisse.
[[email protected] wp-content]# mkdir -p /var/www/sun
[[email protected] wp-content]# cd /var/www/sun/
[[email protected] sun]# svn co http://server/ .
Vérifions si nous avons droit fcontext appliqué:
[[email protected] sun]# cd /var/www/sun/public/wp-content/
[[email protected] wp-content]# ls –Z
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.php
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 languages
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 mu-plugins
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 plugins
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 themes
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_rw_content_t:s0 uploads
Odd, je me attendais à voir httpd_sys_content_t (par défaut fcontext), essayons de restaurer par défaut:
[[email protected] wp-content]# restorecon -Rv /var/www/sun
...Output omitted
[[email protected] wp-content]# ls -Z
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.php
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 languages
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 mu-plugins
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 plugins
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 themes
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 uploads
Utilisation de restorecon pour /var/www/sun fonctionne comme prévu, cependant ... le puzzle est:
Pourquoi svn co dans/var/www/sun a utilisé des politiques non existantes? Le match de la politique fcontext mais pas l'emplacement pour cela:
/var/www/html(/.*)?/wp-content(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
Outre l'indice .php ont differect fcontext, mais les répertoires ont le même: httpd_sys_rw_content_t