私のApache DocumentRoot / var / wwwは、別のパスへのシンボリックリンクです。ターゲットは適切なファイルコンテキストラベル(httpd_sys_content_t)を持っているため、apacheはSELinuxを有効にしてそれを読み取ることができます。ただし、シンボリックリンク自体にはvar_tというラベルが付いています。
[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www
httpd_sys_content_tでシンボリックリンクのラベルを変更する必要があります。
-hオプションを指定してchconを実行すると、最初は動作するようです:
[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
ただし、これは再ラベル付けでは無効です。
[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
semanageを使用しても、リンク自体のラベルは変更されません。ターゲットのみ:
[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には-hオプションはありません。
再ラベル後もhttpd_sys_content_tのままになるように、リンク自体のラベルを設定するためにsemanageを取得するにはどうすればよいですか?
うわー、私はこの1つのための人気の質問バッジを取得し、投票しませんか?
—
スティーブンT.スナイダー