SELinux verhindert, dass der apache
Benutzer in eine ihm gehörende Protokolldatei schreibt. Wenn ich es tue setenforce 0
, funktioniert es. Andernfalls wird dieser Fehler angezeigt
IOError: [Errno 13] Permission denied: '/var/www/webapp/k/site/k.log'
Der Sicherheitskontext der Datei:
$ ll -Z k.log
-rw-r--r--. apache apache system_u:object_r:httpd_sys_content_t:s0 k.log
Die Datei wurde erstellt, als der SELinux-Modus auf "Zulässig" gesetzt wurde.
Wie wird der Sicherheitskontext festgelegt, damit der apache
Benutzer in dieses Verzeichnis schreiben kann? Ich habe diesen Verzeichnissicherheitskontext mithilfe von festgelegt chcon
, kann jedoch keinen geeigneten Dateityp finden.
Von audit.log
:
type=AVC msg=audit(1409945481.163:1561): avc: denied { append } for pid=16862 comm="httpd" name="k.log" dev="dm-1" ino=201614333 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=file
type=SYSCALL msg=audit(1409945481.163:1561): arch=c000003e syscall=2 success=no exit=-13 a0=7fa8080847a0 a1=441 a2=1b6 a3=3 items=0 ppid=15256 pid=16862 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)
Dies ändert die Berechtigungen:
quelle