Доброго времени суток!
Уже голову сломал, ни как не могу понять почему так происходит.
Имеется centos, на нём tacacs+ собирает логи, сделал вебку на perl для apache, чтобы красиво выбирать и формировать данные.
Каталог для логов /var/log/tac_plus/Есть небольшой нюанс, на сервера selinux работает. На время тестов я его перевёл в режим permissive (т.е. следит за порядком, но не препятствует нарушению правил).
[root@tacacs log]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28На нужный каталог назначил права всем на чтение/запись
[root@tacacs log]# ls -al
drwxrw-rw-. 5 root root 4096 Apr 20 16:38 tac_plusдаже ACL как нужно стоят
[root@tacacs log]# getfacl tac_plus/
# file: tac_plus/
# owner: root
# group: root
user::rwx
group::rw-
other::rw-НО! Никак не может апатчик перлом открыть эту директорию ...
Уже даже для апатча сделал баш и от его имени зашёл
-bash-4.2$ whoami
apache
-bash-4.2$ cd /var/log/tac_plus/
-bash: cd: /var/log/tac_plus/: Permission deniedСтандартный доступ открыт, ACL открыт, Selinux только наблюдает ... Почему такая ерунда??? Что блокирует доступу???
> На нужный каталог назначил права всем на чтение/запись
> [root@tacacs log]# ls -al
> drwxrw-rw-. 5 root root
> 4096 Apr 20 16:38 tac_plusс данного вывода видно что нет никаких дополнительных ACL правил (отсутствует + знак в конце прав), а стоит . (знак точка) означает что папка под влиянием SELinux контекста(их можно рассмотреть через -Z параметр)
> -bash-4.2$ whoami
> apache
> -bash-4.2$ cd /var/log/tac_plus/
> -bash: cd: /var/log/tac_plus/: Permission deniedдля того чтобы можно было в папку зайти/попасть (cd - change directory), нужно выдать права другим(other) на запуск папки(+x)
> для того чтобы можно было в папку зайти/попасть (cd - change directory),
> нужно выдать права другим(other) на запуск папки(+x)Спасибо Вам за наводку!
Видимо я прогулял этот урок, где рассказывалось, что r для каталога это вовсе не вход в директорию а лишь получение его содержимого. Теперь нужно осознать выражение "запуск папки" :/ ...
chmod 777 tac_plus
если бы я perl'ом не заходил в папку, чтобы прочитать список файлов и вернуть апатчу, а напрямую бы обращался, всё бы даже и работало ...
> если бы я perl'ом не заходил в папку, чтобы прочитать список файлов
> и вернуть апатчу, а напрямую бы обращался, всё бы даже и
> работало ...В итоге при включении selinux все работает или обратно его не включили?
Кстати, совсем нет необходимости полностью переводить selinux в permissive. Можно только для конкретного домена:
# semanage permissive -a httpd_tПосле окончания разборок:
# semanage permissive -d httpd_tПри этом для остальных доменов ничего не менялось.
> Спасибо Вам за наводку!
> Видимо я прогулял этот урок, где рассказывалось, что r для каталога это
> вовсе не вход в директорию а лишь получение его содержимого. Теперь
> нужно осознать выражение "запуск папки" :/ ...
> chmod 777 tac_plusне за что :)
думаю можно было бы 755 ограничится...