The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"httpd+php: проблемы с правами"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Системное и пользовательское ПО / Linux)
Изначальное сообщение [ Отслеживать ]

"httpd+php: проблемы с правами"  +/
Сообщение от mirya on 17-Янв-10, 04:05 
Подземный стук, 5.5 баллов.

Имеется FedoraCore9, на ней апач и пхп. Апач работает под пользователем apache, у пхп выключены всякие safe_mode, open_basedir'ы. Есть директория '/somewhere/dir' с владельцем apache:apache и правами 0777. Далее 2 действия:
1) апач выполняет пхп-скрипт, который делает touch('/somewhere/dir/file1');
2) я из шелла под пользователем apache делаю touch /somewhere/dir/file2 (или php -r "touch('/somewhere/dir/file2');", эффект тот же.
3) ls -l /somewhere/dir

-rw-r--r-- 1 apache apache      0 2010-01-01 01:01 file1
-rw-r--r-- 1 apache apache      0 2010-01-01 01:02 file2

4) пробую повторно из апача с пом. пхп-скрипта touch('/somewhere/dir/file1') - проходит
5) пробую из апача с пом. пхп-скрипта touch('/somewhere/dir/file2') - время модификации не изменилось, выдается ошибка:

PHP Warning:  touch() [<a href='function.touch'>function.touch</a>]: Utime failed: Permission denied

6) из шелла под пользователем apache touch /somewhere/dir/file1, touch /somewhere/dir/file2, php -r "touch('/somewhere/dir/file1');", php -r "touch('/somewhere/dir/file2');"

срабатывают, как и ожидалось.

Это упрощенное описание проблемы, глобально пхп под httpd не в состоянии писать в файлы, которые сам не создал (хоть ему выстави права 0777/0666 и смени владельца на него). Разницы между файлами, созданными пхп из-под веб-сервера и мною под тем же пользователем из шелла я не вижу, но первые для пхп в апаче писабельны, а вторые - нет.

Есть идеи, что с этим делать и где причина?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "httpd+php: проблемы с правами"  +/
Сообщение от SDenis (??) on 17-Янв-10, 12:13 
>[оверквотинг удален]
>
>-rw-r--r-- 1 apache apache      0 2010-01-01 01:01
>file1
>-rw-r--r-- 1 apache apache      0 2010-01-01 01:02
>file2
>
>4) пробую повторно из апача с пом. пхп-скрипта touch('/somewhere/dir/file1') - проходит
>5) пробую из апача с пом. пхп-скрипта touch('/somewhere/dir/file2') - время модификации не
>изменилось, выдается ошибка:
>

SeLinux ?
>[оверквотинг удален]
>срабатывают, как и ожидалось.
>
>Это упрощенное описание проблемы, глобально пхп под httpd не в состоянии писать
>в файлы, которые сам не создал (хоть ему выстави права 0777/0666
>и смени владельца на него). Разницы между файлами, созданными пхп из-под
>веб-сервера и мною под тем же пользователем из шелла я не
>вижу, но первые для пхп в апаче писабельны, а вторые -
>нет.
>
>Есть идеи, что с этим делать и где причина?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "httpd+php: проблемы с правами"  +/
Сообщение от mirya on 17-Янв-10, 14:30 
Таки, в три ночи как-то в голову не пришло:

# ls -aZ

-rw-r--r-- 1 apache apache      unconfined_u:object_r:httpd_sys_content_rw_t:s0 file1
-rw-r--r-- 1 apache apache      unconfined_u:object_r:httpd_sys_content_t:s0 file2

# chcon --reference=file1 *

, и все стало на свои места

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "httpd+php: проблемы с правами"  +/
Сообщение от cmp (??) on 11-Окт-12, 13:57 
аналогичная проблема в centos 6, перенесли сайт с тестового сервера touch не работает, хотя selinux отключен, лечится удалением файлов и пересозданием через web. http сервер nginx, php прикручен как FastCGI.


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру