Muff's website forum

FreeBSd => WWW => Тема начата: Kostya от Июня 24, 2012, 10:18:35 pm

Название: Проблема с правами на запись.
Отправлено: Kostya от Июня 24, 2012, 10:18:35 pm
Используя Syscp.
Столкнулся с проблемой: домашняя директория виртуального юзера создаётся с стандартными правами 755, а файлы 644. Веб сервер работает от www:www, соответственно через веб-скрипты нет возможности записывать в директорию (создавать папки, изменять файлы), а хостящиеся сайты подразумевают данную возможность. Как быть ?!
Название: Re: Проблема с правами на запись.
Отправлено: muff от Июня 24, 2012, 11:39:28 pm
Используйте Apache c ITK MPM, который позволяет запускать скрипты, выполняемые веб-сервером, с правами пользователя виртуального хоста, а не веб-сервера. Установить его можно из системы портов: /usr/ports/www/apache22-itk-mpm.

Соответственно, в описание виртуального хоста необходимо указывать пользователя и группу, от имени которого будут запускаться скрипты. Пользователь и группа должы существовать!
Пример записи:

<IfModule itk.c>
    AssignUserID telo telo
</IfModule>
Название: Re: Проблема с правами на запись.
Отправлено: Kostya от Июня 25, 2012, 08:24:37 am
А вот я думал, что open_basedir отвечает за такой функционал.
Ошибаюсь, да?!
Название: Re: Проблема с правами на запись.
Отправлено: Kostya от Июня 25, 2012, 08:50:47 am
И всё же об этом itk: ничего, что пользователи syscp виртуальные ?!
Я именно их должен и прописывать ?!
Название: Re: Проблема с правами на запись.
Отправлено: muff от Июня 25, 2012, 10:08:52 am
Если пользователь не будет существовать, то apache "вылетит" с ошибкой. Шелл пользователям не нужно выдавать. Пример:

# pw groupadd -n wwwuser1 -g 1004
# pw useradd -n wwwuser1 -u 1004 -g wwwuser1 -c WWWUser -d /nonexistent -s /sbin/nologin

Только за UID следите.  Попробуйте запустить Apache-ITK, и результаты работы смотрите в top - увидите, что процессы apache запускаются от разных пользователей.
Название: Re: Проблема с правами на запись.
Отправлено: Kostya от Июня 25, 2012, 10:39:01 am
Как-то тупо. Получается вся прелесть панели сводится на НЕТ. Всё равно приходится админу руками достаточно прописывать. Печально ):
Название: Re: Проблема с правами на запись.
Отправлено: Kostya от Июня 25, 2012, 10:42:02 am
И системные пользователи необходимы в любом случае...
Название: Re: Проблема с правами на запись.
Отправлено: muff от Июня 25, 2012, 01:18:54 pm
Да, есть такое.
Как вариант - прицепить скрипт, который автоматизирует добавление аккаунта. Либо же попробуйте подружить панель с suphp.
Название: Re: Проблема с правами на запись.
Отправлено: Kostya от Июня 25, 2012, 01:31:13 pm
Спасибо, что разъяснили. А то я оказывается многого недопонимал.
Название: Re: Проблема с правами на запись.
Отправлено: Kostya от Июня 25, 2012, 01:33:17 pm
ммм и последний момент....я правильно вас понял, что если я буду использовать mpm-itk, то сис-ных юзеров и группы я должен заводить такие же как и виртуальные (прим.: 10010:10010)???
Название: Re: Проблема с правами на запись.
Отправлено: Kostya от Июня 25, 2012, 01:35:47 pm
аа, туплю...Надо чтобы uid и gid были соответствующими, так?!
Название: Re: Проблема с правами на запись.
Отправлено: muff от Июня 25, 2012, 01:58:02 pm
Пример я уже давал... Попробую более подробно обьяснить.
Итак, в описание виртуалхоста добавлено:
<IfModule itk.c>
    AssignUserID kiselev kiselev
</IfModule>

Права на каталоги:
ls -la kiselev/
total 10
drwxr-xr-x   4 kiselev  kiselev   512 22 июн 17:04 .
drwxr-xr-x  49 root     wheel    1024 21 май 10:40 ..
drwxr-xr-x   5 kiselev  kiselev  3584 22 июн 17:04 domain1.kiev.ua
drwxr-xr-x   5 kiselev  kiselev  3584 22 июн 17:04 domain2.kiev.ua

Пользователь:
cat /etc/passwd | grep kiselev
kiselev:*:10010:10010:SysCP:/nonexistent:/sbin/nologin

Группа:
cat /etc/group | grep kiselev
kiselev:*:10010:

Как-то так...