Apache가 파일에 쓰지 못하게하는 SELinux 컨텍스트를 사용하여 설정 chcon했지만 적절한

SELinux는 apache사용자가 자신이 소유 한 로그 파일에 쓰지 못하게합니다 . 내가 할 setenforce 0때 작동합니다. 그렇지 않으면이 오류가 표시됩니다

IOError: [Errno 13] Permission denied: '/var/www/webapp/k/site/k.log'

파일의 보안 컨텍스트 :

$ ll -Z k.log
-rw-r--r--. apache apache system_u:object_r:httpd_sys_content_t:s0 k.log

SELinux 모드가 허용으로 설정되었을 때 파일이 작성되었습니다.

apache사용자가 해당 디렉토리에 쓸 수 있도록 보안 컨텍스트를 설정하는 방법은 무엇입니까? 디렉토리 보안 컨텍스트를 사용하여 설정 chcon했지만 적절한 파일 형식을 찾을 수 없습니다.

보낸 사람 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)



답변

Apache에서 쓸 수있는 파일의 경우 유형을로 설정해야합니다 httpd_sys_rw_content_t.


답변

이미 언급했듯이 SELINUX가 해당 파일에 쓸 수 있도록 지시해야합니다. 올바른 /var/www/webapp/k/site/유형은 유형 으로 표시 하는 것입니다.httpd_sys_rw_content_t

해당 디렉토리를로 영구적으로 표시하려면 httpd_sys_rw_content_t다음 명령을 사용할 수 있습니다.이 명령 semanage fcontext -a -t httpd_sys_rw_content_t /var/www/webapp/k/site(/.*)?; restorecon -RF /var/www/webapp/k/site/
은 SELINUX 이진 정책 업데이트 및 파일 시스템 레이블 재 지정 후에도 유효합니다.


답변

권한이 변경됩니다.

chcon --type httpd_sys_rw_content_t /var/www/webapp/k/site/k.log


답변