Бардак с правами

ThomLee

Новичок
Бардак с правами

Не совсем по програмированию вопрос, но..

Имеем:
Linux FC2,
apache+php DSO - пользователь httpd группа psaserv
Пользователь SOMEUSER
Пользовательские папки располагаются в /home/SOMEUSER/httpdocs
настройки сервера для пользователя соответственно в /home/SOMEUSER/http.conf

Апач работает от имени SOMEUSER (suexec)

Теперь косяк:
Если пользователем SOMEUSER создается файл, то скриптом можно только считать файл, но не отредактировать
Притом что, на эти файлы выставляется группа psaserv с правами чтения/записи

Почему скрипт не может изменять эти файлы?

P.S.
Как временная мера поставил 0777 на файлы и папки, но этот вариант меня не устраивает.
 

neko

tеam neko
да это не баг, просто показатель квалификации админов.

я никогда suexec не пользовал, но искать очевидно где.
надо смотреть под какой группой работает апач.
под каким юзером.
может ли эта группа и этот юзер писать в данный файл...

вопрос бессмысленный по сути.
раз процесс не может что-то прочесть/записать -- значит его пользователю или группе это не позволено. никакого иного варианта нет.
 

Gorynych

Посетитель PHP-Клуба
у меня одна из конфигураций - apache + suexec + php-fastcgi (именно cgi, а не модуль Апача)

дело в том, что при использовании suEXEC пользователи, от имени которых выполняется Апач и работают вирт. хосты РАЗНЫЕ. Если PHP установлен как модуль Апача, то и скрипты в этом случае выполняются от имени того же пользователя, что и Апач (сюрприз: это другой пользователь). Отсюда проблема разделения прав. Поэтому при использовании suEXEC PHP запускают как cgi(fastcgi), а не как модуль Апача.

ссылка по теме: http://www.opennet.ru/base/dev/apache_php_as_cgi.txt.html
 

ThomLee

Новичок
>я никогда suexec не пользовал, но искать очевидно где.
оказалось неочевидным.

>надо смотреть под какой группой работает апач.
psaserv

>под каким юзером.
httpd, но раз suexec, то от имени "владельца" файла (SOMEUSER)

>может ли эта группа и этот юзер писать в данный файл...
данный файл: пользователь SOMEUSER; группа psaserv - чтение/запись
т.е. "владелец группа" - psaserv имеет права на работу с файлом чтение/запись.

>раз процесс не может что-то прочесть/записать -- значит его пользователю или группе это не позволено. никакого иного варианта нет.
В том-то и заключается бредовость ситуации.
В чем собственно бредовость:
1)Пользователь обращается к файлу от имени "владельца" файла - и получает кукиш, в то же время если обращается непосредственно "владелец" то никаких проблем нет с доступом.
2)"владелец группа" обращается к файлу - и получает кукиш

проверяем:
[root@server httpdocs]# ls -l
-rw-rw-r-- 1 SOMEUSER psaserv 11171 Apr 14 20:54 index.php
видим что:
SOMEUSER имеет права на чтение/запись
psaserv имеет права на чтения/запись

[root@server httpdocs]# rm - f index.php

файл удален

скриптом delete.php
<?php
unlink("index.php");
?>
Permission denied

Ну и откуда этот бред вылазит?

-~{}~ 04.07.06 14:11:

Автор оригинала: Gorynych
у меня одна из конфигураций - apache + suexec + php-fastcgi (именно cgi, а не модуль Апача)

дело в том, что при использовании suEXEC пользователи, от имени которых выполняется Апач и работают вирт. хосты РАЗНЫЕ. Если PHP установлен как модуль Апача, то и скрипты в этом случае выполняются от имени того же пользователя, что и Апач (сюрприз: это другой пользователь). Отсюда проблема разделения прав. Поэтому при использовании suEXEC PHP запускают как cgi(fastcgi), а не как модуль Апача.

ссылка по теме: http://www.opennet.ru/base/dev/apache_php_as_cgi.txt.html
а понял. Спасибо.

-~{}~ 04.07.06 14:13:

сори, проверку [root@server httpdocs]# rm - f index.php, провел от рута, сейчас проверил от SOMEUSER - эффект тот же, от владельца удаляется
 
Сверху