Організація запуску скриптів користувача на apache - документація по linux

При організації віртуального хостингу одним з наріжних каменів в даному питанні є делегування прав сторонньому користувачеві - "хазяїну хоста". Найпростіше дати йому права на те щоб він зміг заливати інформацію через ftp. З HTML проблем не виникає, але як бути з тим щоб дозволити виконання скриптів. Очевидним рішенням - використання вбудованої в APACHE функції suEXEC

Так як в якості системи використовується ASPLinux, то і APACHE використовуємо їх же збірки. Документацію по suEXEC в APACHE можна знайти тут.
підготовка

Після вивчення документації з'ясовуємо, що якщо APACHE зібраний з підтримкою suEXEC - це відображається в логах.

перевіряємо:
[Root @ ns logs] # cat error_log | grep suEXEC

Якщо є, повинні побачити щось подібне:

[Swan @ ns swan] $ whereis suexec

suexec: / usr / sbin / suexec /usr/share/man/man8/suexec.8.gz

перевіримо його працездатність:

[Swan @ ns swan] $ su
Password:
[Root @ ns swan] # / usr / sbin / suexec -V
Увага від імені звичайного користувача він не запуститься

-D DOC_ROOT = "/ var / www"
-D GID_MID = 100
-D HTTPD_USER = "apache"
-D LOG_EXEC = "/ var / log / httpd / suexec_log"
-D SAFE_PATH = "/ usr / local / bin: / usr / bin: / bin"
-D UID_MID = 100
-D USERDIR_SUFFIX = "public_html"

Результат виконання команди вказує на те, що suexec живий і з якими дірректорію (каталогами) він буде працювати
важливо

Проблема може виникнути якщо скрипти виконуються в тих віртуальних хостах, для яких визначені конкретні користувачі (ь | і) і груп (а | и) в розділі конфігураційного файлу:

скрипти не виконуються, навіть найпростіші, якщо documentroot не є підкаталогом в шляху, який вказаний змінної "DOC_ROOT"

Що б цього не сталося скрипти необхідно розмістити, наприклад, в / var / www /. / Cgi-bin /
тест

Створимо простий скрипт: test.bash

echo Content-type: text / html
echo
echo
whoami

Прописуємо в конфігруаціі APACHE в розділі
VirtualHost
user
group