Articles of Suexec

Suexec:无效的命令错误

我试图用suexec设置lighttpd,但是在testing时出了点问题:当我尝试通过suexec启动某个东西时,它给了我日志: [2017-10-08 00:23:24]: invalid command (/srv/http/main/htdocs/cgi-bin/test.py) suexec -V输出: -D AP_DOC_ROOT="/srv/http" -D AP_GID_MIN=100 -D AP_HTTPD_USER="lighttpd" -D AP_LOG_EXEC="/var/log/lighttpd/suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=100 -D AP_USERDIR_SUFFIX="public_html" 我用来启动程序的包装器: #!/bin/bash filename="$1" user="$(/usr/bin/stat -c "%U" "$filename") group="$(/usr/bin/stat -c "%G" "$filename") cd "$(dirname "$filename")" /usr/local/bin/suexec "$user" "$group" "$filename" 权限没问题,没有stream氓写入位设置。 尝试从两个userdirs( /home/$USER/public_html )和从docroot。

如何使用Plesk Panel为VPS启用suexec?

我已经在Plesk 9和10(预览版)上进行了testing,但我找不到启用suexec的方法。 Apache已经加载了suexec模块,但是没有启用。 操作系统是Centos 5.4。 任何帮助将不胜感激。 # grep -i suexec /etc/httpd/conf/httpd.conf LoadModule suexec_module modules/mod_suexec.so # /usr/sbin/httpd -l Compiled in modules: core.c prefork.c http_core.c mod_so.c (如果启用了suexec,我们会在上面的模块列表“suexec:enabled; valid wrapper”下面看到类似这样的内容) # locate suexec /usr/lib/httpd/modules/mod_suexec.so /usr/lib/sw-cp-server/sw-suexec /usr/local/psa/suexec /usr/local/psa/suexec/psa-suexec /usr/sbin/suexec /usr/sbin/suexec.saved_by_psa /usr/share/man/man8/suexec.8.gz # ls -lah /usr/sbin/suexec -rs–x— 1 root apache 23K Sep 1 05:41 /usr/sbin/suexec

用suEXEC运行APC

我们的服务器目前已经设置为在启用了suEXEC的情况下运行PHP作为DSO。 我们可以在这个设置中安装APC吗? 服务器是使用WHM / cPanel运行的CentOS 5.2

在centos上用apache2.2.3configurationmod_fastcgi出现suexec错误

我一直在关注这篇博文,以便我可以使用FastCGI在PHP进程之间共享APC操作码caching。 不幸的是,我启动httpd时出现以下错误: Starting httpd: Syntax error on line 4 of /etc/httpd/conf.d/mod_fastcgi.conf: FastCgiWrapper: "/usr/sbin/suexec" execute access for server (uid -1, gid -1) failed: execute not allowed mod_fastcgi.conf的第4行有FastCgiWrapper On 。 我注意到文档指出这行可以指定包装的path 。 应该改变吗? 我检查了用户的php-fastcgi脚本( 550 )和目录( 555 )的权限是正确的,/ usr / sbin / suexec是正确的( -rs–x— ),并且suEXEC正在被加载apache( [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) )。 我应该在哪里看? 我很确定这是一个权限或path问题… TIA, JD

为什么php-fgi的php-cgi包装器脚本? (使用虚拟主机和suexec。)

我只是用Apache,FastCGI和PHP-FPM设置我的服务器。 我的问题是关于/ cgi-bin /文件夹:是否真的有必要为每个使用不同用户/组运行apache的单个虚拟主机提供一个/ cgi-bin / php-fpm包装? 而且,如果用户删除了cgi-bin文件夹,那么fpm / fastcgi的好处将会丢失。 理想情况下,我想设置PHP-FPM,而不需要.conf文件之外的任何东西。 据我所知,php-cgi二进制文件(这就是php-fpm包装器执行的所有内容)可以被系统上的所有用户执行…那么为什么包装要运行的同一个可执行文件的麻烦用户呢? 更具体地说,我怎样才能改变这个configuration直接使用php-cgi二进制文件,而不是通过包装? 与我的问题有关的文件/结果是: /etc/apache2/modules.d/20_mod_fpm.conf ————————————————– ——————————- … FastCgiExternalServer / var / www / localhost / cgi-bin / php-fpm -host 127.0.0.1:9000 AddHandler php-fpm .php 动作php-fpm / cgi-bin / php-fpm DirectoryIndex index.php … 在/ var / WWW /本地主机/ cgi-bin目录/ PHP-FPM ————————————————– ——————————- #!的/ usr / bin中/ […]

mod_vhost_alias + suEXEC:自动selectuid / gid

我试图configurationDebian 6.0.4与PHP5的大规模共享主机。 apache2-mpm-worker libapache2-mod-fcgid apache2-suexec软件包apache2-mpm-worker libapache2-mod-fcgid apache2-suexec 。 我成功地加载了mod_vhost_alias和suexec来pipe理我的域名,然后我把这个configuration放在/etc/apache2/sites-enabled/001-vhostalias : NameVirtualHost *:80 ServerName web-test.mynet.lan DocumentRoot /var/www/ SuexecUserGroup www-data www-data UseCanonicalName Off VirtualDocumentRoot /var/www/www.%2+/public_html/ VirtualScriptAlias /var/www.%2+/cgi-bin/ DirectoryIndex index.html index.htm index.shtml index.php ScriptAlias /__php5-cgi/ "/usr/local/lib/custom-cgi/php5-cgi/" Action php5-script /__php5-cgi/php5-cgi AddHandler php5-script .php 有了上面的这个,在线上,一个名为www.test-a.com的域名需要: adduser test-a.com (强制使用坏名字) mkdir -p /var/www/www.test-a.com/public_html并放置数据 文件chmod和chown , 一切工作正常 … 没有suEXEC我做了一些简单的PHPtesting,它工作正常uid / gid www-data 。 […]

在ScriptAliasMatch中用户转发的机制

我正在按照本教程来设置gitolite,并在某些时候使用以下ScriptAliasMatch: 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))$" \ /var/www/bin/gitolite-suexec-wrapper.sh/$1 目标脚本开始 USER=$1 所以我猜这是用来将用户名从Apache转发到suexec脚本(这确实需要它)。 但是我不明白这是怎么完成的。 ScriptAliasMatch文档使我认为/$1将被第一个匹配的正则expression式的匹配组取代。 对我来说,它从(?x)^ /(。* to) ) $捕获,所以这里没有关于用户的信息。 我的根本问题是USER在我的脚本是空的,所以我没有在gitolite授权。 我通过基本身份validation给我的用户名到Apache: <Location /> # Crowd auth AuthType Basic AuthName "Git repositories" … Require valid-user </Location> 在之前的ScriptAliasMatch下定义。 所以我真的想知道这应该如何工作,我错过了什么机制的一部分,所以我不检索我的脚本中的用户。

无法获得RT的新实例启动

我试图从CentOS 4服务器移植一个RT 4.0.1实例(本地代码定制)到CentOS 6服务器。 我的问题似乎是我无法启动fastcgi脚本。 当apache启动时,会出现这个错误: [Mon Mar 25 12:37:37 2013] [warn] FastCGI: server "/opt/rt4/sbin/rt-server.fcgi" (uid 48, gid 48) restarted (pid 1504) suexec policy violation: see suexec log for more details [Mon Mar 25 12:37:37 2013] [warn] FastCGI: server "/opt/rt4/sbin/rt-server.fcgi" (pid 1504) terminated by calling exit with status '107' [Mon Mar 25 12:37:38 2013] [warn] […]

如何启用组可写的suexecfunction的CGI脚本?

我被要求在我们部门的networking服务器上build立一个共享的networking空间,这个空间可以被多人访问,并且可能正在运行CGI或PHP脚本。 维护Web空间的人可能会决定使用它来提交文件,这意味着他们需要访问由脚本创build的任何文件。 我们在Scientific Linux 6上运行Apache。 由于多个人需要对Web空间进行写入访问,因此我们的标准方法是创build一个所有相关人员所属的组,然后将Web空间中的目录的权限设置为g+ws 。 suexec对分组可写的文件不满意,拒绝运行它们。 我们如何设置它,并确保任何脚本运行在不同于主要apache帐户的帐户下(并且不同于不在 web空间组中的任何用户)? 对于问责制(和其他)的原因,我宁愿不必build立一个共享的帐户,各种人将不得不用来维持这个networking空间。 对于更多的上下文,下面是我们目前的设置:我们有主目录在NFS上并且根据需要自动安装的用户。 大多数人只是使用通过mod_userdir访问他们的个人网站空间。 过去,我们通过在NFS服务器上创build额外的自动挂载目录来实现对共享web空间的多个请求,这些自动挂载目录与特定帐户无关,但其中的组拥有权设置为便于多个帐户访问。 到目前为止,这些共享空间只包含静态内容(并且我们相信所涉及的人员不会从中运行脚本),所以我们从来不必为这些空间解决任何与suexec有关的问题。 编辑 :请注意,用户可能需要访问由脚本创build的文件。

PHP-FPM SuExecUserGroup不能正常工作

我已经安装了PHP,Apache和fastcgi_handler: emerge dev-lang/php www-apache/mod_fastcgi_handler 我设法通过更新/etc/apache2/modules.d/70_mod_php5.conf中的相关行 至: # AddHandler application/x-httpd-php .php .php5 .phtml # AddHandler application/x-httpd-php-source .phps AddHandler fcgi:/var/run/php-fpm.socket .php .php5 和/etc/conf.d/apache2来 APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D SUEXEC -D LANGUAGE -D PHP5 -D FASTCGI_HANDLER" 在我的文档根目录中,我有以下文件来validation安装: <?php echo '<pre>'; var_dump(exec('whoami')); var_dump(php_sapi_name()); 然后我有以下的虚拟主机: <IfDefine DEFAULT_VHOST> <VirtualHost localhost:80> ServerName local.testdomain.com ServerAlias local.testdomain.com SuExecUserGroup foobar foobar […]