Я хочу запустить конкретный (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
Повторяя документацию, вам почти всегда лучше не делать этого таким образом.