Mod_ruid2 поломан. Как починить
Mod_ruid2 поломан. Как починить
Недавно заметил разницу в работе 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) с давних пор имеет такие права папки
Скрипт <?php echo `id 2>&1`; выдает такой результат
Проблему можно решить комментированием опции "RGroups apache" в конфиге сайта, после этого всё начинает работать. В конфиге сайта "RGroups apache" поменялось на "#RGroups apache"
Для vesta можно написать скрипт для быстрого исправления:
Другой выход из проблемы - пометять права на папку так:
(1 - stycky bit, который дает дополнительную защиту, как на папке /tmp)
Смена прав на папку не решает всех проблем, по прежнему не читается конфиг файл roundcube.
Старый сервер (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/
Новый сервер (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),48(apache)
Капец, что это за группа 4294967295?uid=501(admin) gid=501(admin) groups=501(admin),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
Смена прав на папку не решает всех проблем, по прежнему не читается конфиг файл roundcube.
Last edited by Deeryo on Mon Apr 27, 2015 1:35 pm, edited 3 times in total.
Re: Mod_ruid2 поломан. Как починить
Не получается отследить, почему так произошло.
На моих машинках (их правда не много) такого не было изначально.
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 поломан. Как починить
Проблема произошла при обновлении mod_ruid2, Vesta тут не виновата.
На старом сервере права выставлены 770 и всё работает из-за дополнительной группы "apache":
Группу apache добавляет mod_ruid и её видно php скриптом <?php echo `id 2>&1`;
На старом сервере права выставлены 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/
Re: Mod_ruid2 поломан. Как починить
В качестве решения добавление /usr/share/javascript/ к php_admin_value open_basedir (опционально)
А также проверить права на /var/lib/php/session/
Code: Select all
php_admin_value open_basedir /usr/share/phpmyadmin/:/usr/share/javascript/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext