Страница 1 из 1

apache22 suexec uidmin

Добавлено: 2008-10-30 14:14:04
alex3
Возможно ламерский вопрос, но уже полдня бьюсь.
Захотел прикрутить вебморду к dspam. настроил апач как положено... с suexec-ом. при попытке загрузить страницу - кричит что такой uid/gid forbidden. Рылся в доках, нашел такую опцию --with-suexec-uidmin= и --with-suexec-gidmin= .. проверил в исходниках (в портах), там они оба равны 1000. как их сменить? у меня юзер и группа имеют id гораздо меньший.

Re: apache22 suexec uidmin

Добавлено: 2008-10-30 14:40:09
Raven2000
вывали что есть, логи.

Re: apache22 suexec uidmin

Добавлено: 2008-10-30 14:44:22
alex3
httpd-error.log

Код: Выделить всё

[Thu Oct 30 13:26:45 2008] [error] [client 10.0.0.234] File does not exist: /xxx/www/dspam/favicon.ico, referer: http://dspam.xxx.ru/
[Thu Oct 30 13:26:46 2008] [error] [client 10.0.0.234] suexec policy violation:see suexec log for more details
[Thu Oct 30 13:26:46 2008] [error] [client 10.0.0.234] Premature end of script headers: dspam.cgi
[Thu Oct 30 13:26:46 2008] [error] [client 10.0.0.234] File does not exist: /xxx/www/dspam/favicon.ico, referer: http://dspam.xxx.ru/
httpd-suexec.log

Код: Выделить всё

[2008-10-30 13:26:45]: cannot run as forbidden uid (26/dspam.cgi)
[2008-10-30 13:26:45]: uid: (26/mailnull) gid: (6/mail) cmd: dspam.cgi
[2008-10-30 13:26:45]: cannot run as forbidden uid (26/dspam.cgi)
[2008-10-30 13:26:45]: uid: (26/mailnull) gid: (6/mail) cmd: dspam.cgi
[2008-10-30 13:26:45]: cannot run as forbidden uid (26/dspam.cgi)
[2008-10-30 13:26:46]: uid: (26/mailnull) gid: (6/mail) cmd: dspam.cgi
[2008-10-30 13:26:46]: cannot run as forbidden uid (26/dspam.cgi)

Re: apache22 suexec uidmin

Добавлено: 2008-10-30 15:15:04
alex3
вопрос сводится к тому, как при установке из портов прописывать опции configure? можно лопатить makefile, но это не выход... при обновлении портов все слетит.
это серьезный минус при установке из портов, против установки из исходников...

Re: apache22 suexec uidmin

Добавлено: 2008-10-30 16:01:31
Alex Keda
подвесь мдулем, персонально для этого виртуалхоста

Re: apache22 suexec uidmin

Добавлено: 2008-10-30 16:57:17
alex3
понятно...я до таких глубин апач не изучал, но, видимо, пришла пора. :(

Re: apache22 suexec uidmin

Добавлено: 2009-02-16 12:52:52
blessendor
Корректная сборка Apache 2.2 с опцией SUEXEC на FreeBSD 6.3

Код: Выделить всё

# cd /usr/ports/www/apache22
# make config

Читать вывод:

Код: Выделить всё

# make show-options | less

Цитирую относящийся к задаче фрагмент:

Код: Выделить всё

##            SUEXEC_DOCROOT:     SuExec root directory
##            SUEXEC_USERDIR:     User subdirectory (default public_html)
##            SUEXEC_SAFEPATH:    Set the safepath
##            SUEXEC_LOGFILE:     Set log file for suexec (default: /var/log/httpd-suexec.log)
##            SUEXEC_UIDMIN:      Minimal allowed UID (default 1000, нативное значение Apache - 500)
##            SUEXEC_GIDMIN:      Minimal allowed GID (default 1000 нативное значение Apache - 500)
##            SUEXEC_CALLER:      User allowed to call SuExec (default: ${WWWOWN} (www))
##            SUEXEC_UMASK:       Defines umask for suexec'd process(default: unset)


Необходимые значения параметров (как видно из вывода, в умолчательной конфигурации SUEXEC доступен только для простых пользователей) прописать в /etc/make.conf:

Код: Выделить всё

SUEXEC_UIDMIN=900
SUEXEC_GIDMIN=900
SUEXEC_LOGFILE=/var/log/httpd-suexec_custom.log


Ну и как обычно:

Код: Выделить всё

# make
# make install
# make clean


Теперь suexec в Apache-2.2 будет работать, причём работать как надо.

Re: apache22 suexec uidmin

Добавлено: 2011-03-20 0:05:39
criminalist
Такая же беда все уже сил нет, вы победили или нет ?
пересборка апача с настройками в make.conf результата не дает ( не подхватывает их что ли.

Кто нибудь может выложить вдовес рабочий виртуальный хост (индейца) с fcgid ?

Код: Выделить всё

[2011-03-20 02:47:55]: command not in docroot (/usr/local/bin/php-cgi)
[2011-03-20 02:48:06]: uid: (80/www) gid: (80/www) cmd: php.cgi
[2011-03-20 02:48:06]: cannot run as forbidden uid (80/php.cgi)

Код: Выделить всё

/cgi-bin/php.cgi

Код: Выделить всё

#!/bin/bash
PHP_CGI=/usr/local/bin/php-cgi
PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=1000
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec $PHP_CGI

Код: Выделить всё

exeplay# suexec -V
 -D AP_DOC_ROOT="/usr/local/www/data"
 -D AP_GID_MIN=1000
 -D AP_HTTPD_USER="www"
 -D AP_LOG_EXEC="/var/log/httpd-suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=1000
 -D AP_USERDIR_SUFFIX="public_html"

В итоге на странице Internal Server Error

Ничего что мы видим UID_MIN=1000 а www 80 ? или собстно в этом и есть косяк ?