我想在我的网络服务器上运行一个特定的 (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>
答案1
究竟是什么原因阻止您的应用程序以这种方式运行?
可以按照您的要求去做,但最好利用您的时间来配置一个环境,使您的应用程序可以以拥有 httpd 进程的同一用户身份运行。
您只是给您的环境引入了更多复杂性,这使得调试、保护和管理变得更加困难。
无论如何,回答你的问题:查看 suEXEC -http://httpd.apache.org/docs/2.0/suexec.html
与文档相呼应,你几乎总是最好不要这样做事。