Comment attribuer une étiquette SELinux à un lien symbolique avec semanage afin qu'elle persiste après une nouvelle étiquette?

12

Mon Apache DocumentRoot / var / www est un lien symbolique vers un autre chemin. La cible a l'étiquette de contexte de fichier appropriée (httpd_sys_content_t) afin qu'apache puisse la lire avec SELinux activé. Cependant, le lien symbolique lui - même est étiqueté avec var_t.

[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www

J'ai besoin de renommer le lien symbolique avec httpd_sys_content_t.

L'exécution de chcon avec l'option -h semble initialement fonctionner:

[root@localhost var]# chcon -h -t httpd_sys_content_t /var/www
[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:httpd_sys_content_t:s0 www -> /srv/www

Cependant, cela ne survit pas à une nouvelle étiquette:

[root@localhost var]# restorecon -Rv .
restorecon reset /var/www context system_u:object_r:httpd_sys_content_t:s0->syst
em_u:object_r:var_t:s0

L'utilisation de semanage ne réétiquet pas le lien lui-même; juste la cible:

[root@localhost var]# semanage fcontext -a -t httpd_sys_content_t /var/www
[root@localhost var]# restorecon -Rv .
[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www

semanage n'a pas l'option -h.

Comment puis-je demander à semanage de définir le libellé du lien lui-même afin qu'il reste en tant que httpd_sys_content_t après un réétiquetage?

Steven T. Snyder
la source
Wow, j'ai obtenu l'insigne Question populaire pour celui-ci, et aucun vote?
Steven T. Snyder

Réponses:

9

Je l'ai compris:

semanage a une option -fqui vous permet de spécifier un type de fichier comme indiqué dans le champ mode par ls( dpour les répertoires, --pour les fichiers normaux, lpour les liens). Quand -f -lest utilisé, le lien lui-même est ciblé.

[root@localhost var]# semanage fcontext -f -l -a -t httpd_sys_content_t /var/www
[root@localhost var]# restorecon -Rv .
restorecon reset /var/www context system_u:object_r:var_t:s0->system_u:object_r:httpd_sys_content_t:s0

Voir la semanage-fcontextpage de manuel.

Steven T. Snyder
la source
3
Cette réponse utilise correctement -f -lcar c'est la syntaxe qui était en vigueur lors de son écriture. Les versions ultérieures de semanage (EL7) utilisent -f l.
user9517