Page 1 of 1

Mod_ruid2 поломан. Как починить

Posted: Mon Apr 27, 2015 10:05 am
by Deeryo
Недавно заметил разницу в работе mod_ruid2 на старом сервере без обновлений и новом сервере с обновленными httpd и mod_ruid2. Пропали права на папку /var/lib/php/session, решил разобраться.

Старый сервер (mod_ruid2-0.9.4-1.x86_64, httpd-2.2.15-115.el6.1.x86_64) с давних пор имеет такие права папки

Code: Select all

# ls -lad /var/lib/php/session/
drwxrwx--- 2 root apache 557056 2015-04-26 14:29 /var/lib/php/session/
Скрипт <?php echo `id 2>&1`; выдает такой результат
uid=501(admin) gid=501(admin) groups=501(admin),48(apache)
Новый сервер (mod_ruid2-0.9.8-2.el6.x86_64, httpd-2.2.15-115.el6.1.x86_64) Скрипт <?php echo `id 2>&1`; выдает такой результат
uid=501(admin) gid=501(admin) groups=501(admin),4294967295
Капец, что это за группа 4294967295?

Проблему можно решить комментированием опции "RGroups apache" в конфиге сайта, после этого всё начинает работать. В конфиге сайта "RGroups apache" поменялось на "#RGroups apache"

Для vesta можно написать скрипт для быстрого исправления:

Code: Select all

replace 'RGroups apache' '#RGroups apache' -- /home/*/conf/*/httpd.conf
replace 'RGroups apache' '#RGroups apache' -- /usr/local/vesta/data/templates/web/httpd/*tpl
service httpd restart
Другой выход из проблемы - пометять права на папку так:

Code: Select all

chmod 1777 /var/lib/php/session
(1 - stycky bit, который дает дополнительную защиту, как на папке /tmp)
Смена прав на папку не решает всех проблем, по прежнему не читается конфиг файл roundcube.

Re: Mod_ruid2 поломан. Как починить

Posted: Mon Apr 27, 2015 12:47 pm
by skurudo
Не получается отследить, почему так произошло.

Code: Select all

ls -la /var/lib/php/
total 12
drwxr-xr-x.  3 root root   4096 Apr  4 18:40 .
drwxr-xr-x. 27 root root   4096 Apr  4 18:45 ..
drwxrwxrwx.  2 root apache 4096 Apr 27 08:39 session
На моих машинках (их правда не много) такого не было изначально.

Re: Mod_ruid2 поломан. Как починить

Posted: Mon Apr 27, 2015 1:30 pm
by Deeryo
Проблема произошла при обновлении mod_ruid2, Vesta тут не виновата.
На старом сервере права выставлены 770 и всё работает из-за дополнительной группы "apache":

Code: Select all

# ls -lad /var/lib/php/session/
drwxrwx--- 2 root apache 557056 2015-04-26 14:29 /var/lib/php/session/
Группу apache добавляет mod_ruid и её видно php скриптом <?php echo `id 2>&1`;

Re: Mod_ruid2 поломан. Как починить

Posted: Fri Apr 29, 2016 1:25 pm
by skurudo
В качестве решения добавление /usr/share/javascript/ к php_admin_value open_basedir (опционально)

Code: Select all

php_admin_value open_basedir /usr/share/phpmyadmin/:/usr/share/javascript/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext
А также проверить права на /var/lib/php/session/