Мне нужно было выйти и снова войти в систему или перезагрузить систему. Выяснил, что ключ Linux Group Permissions не применяется должным образом.
CentOS7, SELinux, Apache, PHP-FPM: доступ к файлу file_put_contents запрещен пользователю
У меня есть многопользовательская установка CentOS7 / Apache (userdir) с включенным SELinux и следующей структурой каталогов:
/home/USER/public_html/resources/css
Весь /home/USER
каталог и все, что находится под ним, принадлежит USER. Все файлы и каталоги имеют контекст SELinux, httpd_user_content_t
кроме вышеупомянутого каталога, который я установил httpd_user_rw_content_t
. Сервер apache работает под пользователем apache, а пользователь apache является членом группы USER. Все под /home/USER
имеет 0775 разрешений (для записи группы). Один из моих сценариев использует php file_put_contents
для создания файла с именем test_fpc.txt
в /home/USER/public_html/resources/css
каталоге, но только в том случае, если каталог принадлежит владельцу, apache:apache
все file_put_contents
получится. Если каталог принадлежит завершается с предупреждением. Журнал аудита гласит:USER:USER
file_put_contents
failed to open stream: Permission denied
type=SYSCALL msg=audit(1483602823.639:155208): arch=c000003e syscall=2 success=no exit=-13 a0=7f0e5d9f1478 a1=241 a2=1b6 a3=73656372756f7365 items=2 ppid=855 pid=992 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="php-fpm" exe="/usr/sbin/php-fpm" subj=system_u:system_r:httpd_t:s0 key="apache_user_access" type=CWD msg=audit(1483602823.639:155208): cwd="/home/USER/public_html" type=PATH msg=audit(1483602823.639:155208): item=0 name="/home/USER/public_html/resources/css/" inode=65290545 dev=08:12 mode=040775 ouid=1002 ogid=1002 rdev=00:00 obj=system_u:object_r:httpd_user_rw_content_t:s0 objtype=PARENT type=PATH msg=audit(1483602823.639:155208): item=1 name="/home/USER/public_html/resources/css/test_fpc.txt" objtype=CREATE
Когда я вхожу в систему с помощью пользователя apache sudo -u apache bash
и выполняю echo "test" > /home/USER/public_html/resources/css/test_bash.txt
его, он работает и выводит журнал аудита:
type=SYSCALL msg=audit(1483602552.156:155207): arch=c000003e syscall=2 success=yes exit=3 a0=f607c0 a1=241 a2=1b6 a3=0 items=2 ppid=13539 pid=13540 auid=0 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=pts0 ses=207 comm="bash" exe="/usr/bin/bash" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="apache_user_access" type=CWD msg=audit(1483602552.156:155207): cwd="/home/USER/public_html" type=PATH msg=audit(1483602552.156:155207): item=0 name="/home/USER/public_html/resources/css/" inode=65290545 dev=08:12 mode=040775 ouid=1002 ogid=1002 rdev=00:00 obj=system_u:object_r:httpd_user_rw_content_t:s0 objtype=PARENT type=PATH msg=audit(1483602552.156:155207): item=1 name="test_bash.txt" inode=65273889 dev=08:12 mode=0100644 ouid=48 ogid=48 rdev=00:00 obj=unconfined_u:object_r:httpd_user_rw_content_t:s0 objtype=CREATE
Я также попытался установить контекст /home/USER/public_html/resources/css
каталога, httpd_sys_rw_content_t
но это не имеет значения.
Я не пробовал устанавливать настройки, так setsebool -P httpd_unified 1
как я действительно хотел бы сохранить текущую ограничительную конфигурацию SELinux, и я чувствую, что SELinux здесь не настоящая проблема. Что может быть причиной того, что каталог для записи в группе не доступен для записи пользователю apache, который является членом группы USER?
1 ответ на вопрос
Похожие вопросы
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
3
Мой файл заблокирован в Excel 2007, что происходит?
-
1
Обратный прокси Apache
-
-
1
Как восстановить TrustedInstaller в качестве владельца каталога Program Files?
-
3
Ubuntu Server с рабочим окружением GNOME - настройка разрешений файла конфигурации Apatche
-
8
Как я могу дать права на запись в папку всем пользователям Linux?
-
5
Есть ли * хороший * HTML-режим для emacs?
-
1
Журнал ошибок Apache2
-
4
Проверка версии PHP, на которой я работаю в Linux?
-
2
Mac OS X bash: удалите все apache и PHP вхождения