Назад | Перейти на главную страницу

Выполнить сценарий CGI от имени конкретного пользователя с помощью Apache

Я хочу запустить конкретный (perl) скрипт CGI на своем веб-сервере. Это работает разумно, но было бы намного лучше, если бы сценарий CGI работал от имени текущего аутентифицированного пользователя.

Есть ли способ сделать это, например с оберткой и sudo?

Конфигурация виртуального хоста выглядит следующим образом:

    DocumentRoot /path/to/script
    <Directory /path/to/script>
            Options FollowSymLinks +ExecCGI
            AddHandler cgi-script .cgi

            AuthType Basic
            AuthName "Authenticate"

            # This authenticates against the local NIS
            PerlAuthenHandler Apache2::AuthenNIS
            PerlAuthzHandler Apache2::AuthzNIS
            PerlSetVar AllowAlternateAuth no

            Require valid-user
    </Directory>

Что именно мешает вашему приложению работать таким образом?

Можно делать то, что вы просите, но, возможно, лучше потратить время на настройку среды, в которой ваше приложение может работать от имени того же пользователя, который владеет процессами httpd.

Вы просто усложняете свою среду, что затрудняет отладку, безопасность и управление.

В любом случае, чтобы ответить на ваш вопрос: загляните в suEXEC - http://httpd.apache.org/docs/2.0/suexec.html

Повторяя документацию, вам почти всегда лучше не делать этого таким образом.