У меня есть сценарий CGI под названием index.cgi
Он пытается прочитать файл журнала с именем 10.128.0.242.2012.sep.20.downloaded.txt
под тропой /var/log/trafcount/
Похоже, что он заблокирован selinux.
Журнал аудита показывает что-то вроде
type = AVC msg = audit (1348158321.873: 1472116): avc: denied {read} для pid = 11620 comm = "index.cgi" name = "10.128.0.242.2012.sep.20.downloaded.txt" dev = dm- 0 ino = 395264 scontext = unlimited_u: system_r: httpd_sys_script_t: s0 tcontext = unlimited_u: object_r: var_log_t: s0 tclass = file
Как я могу разрешить этому сценарию полный доступ ко всем файлам в / var / log / trafcount?
Один из способов - использовать команду chcon со следующим:
chcon -Rv --type=httpd_sys_content_t /var/log/trafcount
Это даст вам доступ при перезагрузке, но не при перемаркировке SELinux. В конечном итоге я бы предложил создать собственный тип и создать для него правило в SELinux, чтобы и / var / log, и Apache могли продолжать его использовать.
Источник: http://wiki.centos.org/HowTos/SELinux (Там много отличных вещей о SELinux под CentOS)