Есть Apache c кучей VirtualHosts. Работает PHP в safe_mode как модуль. Юзеры друг к другу не лазиют. Но вот проблема. Если прользователь программно (PHP) у себя в home создает директорию Ей владеет apache,и пользователь потом (также программно) записать туда ничего не может - ругается safe_mode: UID скрипта (владелец юзер) не совпадает с UID каталога (владелец-то apache).
Может, кто что подскажет чем это побороть? Ну кроме конечно PHP как CGI + SuExec.
>Есть Apache c кучей VirtualHosts. Работает PHP в safe_mode как модуль. Юзеры
>друг к другу не лазиют. Но вот проблема. Если прользователь программно
>(PHP) у себя в home создает директорию Ей владеет apache,и пользователь
>потом (также программно) записать туда ничего не может - ругается safe_mode:
>UID скрипта (владелец юзер) не совпадает с UID каталога (владелец-то apache).
>
>Может, кто что подскажет чем это побороть? Ну кроме конечно PHP как
>CGI + SuExec.
Делай из скрипта chmod на созданный им файл.
>>Есть Apache c кучей VirtualHosts. Работает PHP в safe_mode как модуль. Юзеры
>>друг к другу не лазиют. Но вот проблема. Если прользователь программно
>>(PHP) у себя в home создает директорию Ей владеет apache,и пользователь
>>потом (также программно) записать туда ничего не может - ругается safe_mode:
>>UID скрипта (владелец юзер) не совпадает с UID каталога (владелец-то apache).
>>
>>Может, кто что подскажет чем это побороть? Ну кроме конечно PHP как
>>CGI + SuExec.
>
>
>Делай из скрипта chmod на созданный им файл.Поясняю: Вот картинка к примеру
drwxrwxrwx test www 512 /home/user
-rwxrwxrwx test test 4570 /home/user/script.phpВнутри апач создает директорию 123 (через PHP)
drwxrwxrwx www www 512 /home/user/123Если затем апач попытается создать файл /home/user/123/text.txt то врубается safe_mode который орет что UID script.php (test) не сопадает с UID директории 123 (www) Есесно ниче записать не может и даже прочитать не может. Владельца програмно сменить не могу!!! В идеале надо бы чтобы 123 тоже владел test. НО..... его создает pHP от др пользователя.
>>>Есть Apache c кучей VirtualHosts. Работает PHP в safe_mode как модуль. Юзеры
>>>друг к другу не лазиют. Но вот проблема. Если прользователь программно
>>>(PHP) у себя в home создает директорию Ей владеет apache,и пользователь
>>>потом (также программно) записать туда ничего не может - ругается safe_mode:
>>>UID скрипта (владелец юзер) не совпадает с UID каталога (владелец-то apache).
>>>
>>>Может, кто что подскажет чем это побороть? Ну кроме конечно PHP как
>>>CGI + SuExec.
>>
>>
>>Делай из скрипта chmod на созданный им файл.
>
>Поясняю: Вот картинка к примеру
>drwxrwxrwx test www 512 /home/user
>-rwxrwxrwx test test 4570 /home/user/script.php
>
>Внутри апач создает директорию 123 (через PHP)
>drwxrwxrwx www www 512 /home/user/123
>
>Если затем апач попытается создать файл /home/user/123/text.txt то врубается safe_mode который орет
>что UID script.php (test) не сопадает с UID директории 123 (www)
>Есесно ниче записать не может и даже прочитать не может. Владельца
>програмно сменить не могу!!! В идеале надо бы чтобы 123 тоже
>владел test. НО..... его создает pHP от др пользователя.Странно, у меня создал - собственник www, а группа %user.
>Есть Apache c кучей VirtualHosts. Работает PHP в safe_mode как модуль. Юзеры
>друг к другу не лазиют. Но вот проблема. Если прользователь программно
>(PHP) у себя в home создает директорию Ей владеет apache,и пользователь
>потом (также программно) записать туда ничего не может - ругается safe_mode:
>UID скрипта (владелец юзер) не совпадает с UID каталога (владелец-то apache).
>
>Может, кто что подскажет чем это побороть? Ну кроме конечно PHP как
>CGI + SuExec.http://ua.php.net/manual/en/features.safe-mode.php
safe_mode_gid booleanBy default, Safe Mode does a UID compare check when opening files. If you want to relax this to a GID compare, then turn on safe_mode_gid. Whether to use UID (FALSE) or GID (TRUE) checking upon file access.
Таке-то.