suexec 失败,scriptalias 没有日志

suexec 失败,scriptalias 没有日志

我正在尝试在 apache2 服务器上安装 gitolite 3。因此我需要运行 拥有的 CGI 脚本git:git。我实现此目的的配置(主要基于) 是:

<VirtualHost myserver.com>
  ServerName myserver.com
  ServerAlias git
  SuexecUserGroup git git
  ScriptAliasMatch "(?x)^/(.*/(HEAD | info/refs | objects/(info/[^/]+ | [0-9a-f]{2}/[0-9a-f]{38} | pack/pack-[0-9a-f]{40}\.(pack|idx)) | git-(upload|receive)-pack))$" \
  /srv/www/gitolite_suexec_wrapper.sh/$1
</VirtualHost>

我遇到的问题是,每当查询与我的 stript 别名正则表达式匹配时,客户端就会收到 403,并且我的 apache 错误日志(设置为调试级别)会告诉我以下内容:

client denied by server configuration: /srv/www/gitolite_suexec_wrapper.sh

我的 apache2 服务器有用户 wwwrun 和组 www。suexec 模块正在运行,因此我测试一切正常,如下所示:

su -c "/usr/sbin/suexec2 true" wwwrun
suexec policy violation: see suexec log for more details

因此该用户可以启动 suexec。之前我的权限有误,/srv/www/gitolite_suexec_wrapper.sh并且有几行已登录/var/log/apache2/suexec.log,现在我什么都没有了,所以我猜我的权限在 suexec 和包装脚本方面设置正确。

我仍然不确定这个脚本是否应该由我需要 apache2 运行的脚本的所有者拥有。wwwrun:www我猜git:gitsuexec 帮助应该是这样的wwwrun:www,无论如何我都尝试了,但都没有用。

su -c "/srv/www/gitolite_suexec_wrapper.sh" wwwrun

给出一个输出,所以我认为我的权限在这个脚本上设置正确。

我还应该检查什么?我做错了什么?

在此先感谢您的帮助!

答案1

好的,我找到了解决方案,我必须像这样授予对脚本文件的访问权限(在同一个虚拟主机中):

<Directory "/srv/www">
  <Files "gitolite_suexec_wrapper.sh">
    Order allow,deny
    Allow from all
  </Files>
</Directory>

然后就好了。

相关内容