06.12.2011

Как заставить Suexec игнорировать несоответствие UID/GID директорий, программ и запускающего

Вариант для Debian.
Придется пересобрать Suexec.

Нам понадобятся следующие пакеты:
apt-get install dpatch libaprutil1-dev libapr1-dev sharutils libcap-dev autoconf devscripts
Переходим в директорию, где обычно все собираем:
cd /usr/src
Скачиваем:
apt-get source apache2-suexec
Переходим в директорию, из которой надо работать:
cd apache2-2.2.16
Редактируем исходный код:
vi +569 support/suexec.c

И комментируем полностью весь блок:
    /* if ((uid != dir_info.st_uid) ||
        (gid != dir_info.st_gid) ||
        (uid != prg_info.st_uid) ||
        (gid != prg_info.st_gid)) {
        log_err("target uid/gid (%ld/%ld) mismatch "
                "with directory (%ld/%ld) or program (%ld/%ld)\n",
                uid, gid,
                dir_info.st_uid, dir_info.st_gid,
                prg_info.st_uid, prg_info.st_gid);
        exit(120);
    } */

Теперь собираем то, что получилось:
debuild -uc -us
По истечении этой команды директорией выше появятся много пакетов Apache. Нам нужен только один из этих двух:
ls -l ../apache2-suexec*


Комментариев нет:

Отправить комментарий