cgiとsuexecをスクリプトとして書く

cgiとsuexecをスクリプトとして書く

httpdサーバーがあります

SuexecUserGroup         netmet netmet
DocumentRoot            /home/netmet/html
ServerName
ServerAdmin
ErrorLog                /var/log/httpd/netmet.error
TransferLog             /var/log/httpd/netmet.access
DirectoryIndex          index.cgi index.html

AliasMatch              /netmet-cgi-bin/nmHOST-4.*-DETAILS(.*)\.cgi /usr/lib/cgi-bin/netmet-cgi-bin/nmHOST-DETAILS$1.cgi
AliasMatch              /netmet-cgi-bin/nmHOST-4.*-SERVICES(.*)\.cgi /usr/lib/cgi-bin/html/netmet-cgi-bin/nmHOST-SERVICES$1.cgi
AliasMatch              /netmet-cgi-bin/nmTOP_NforORGA4-.*\.cgi /usr/lib/cgi-bin/netmet-cgi-bin/nmTOP_NforORGA.cgi

AddHandler              cgi-script .cgi .pl

サーバーを使用してこのスクリプトにアクセスしようとすると、次のメッセージが表示されます。500 内部サーバーエラーだから私は次のことを確認しますerror.log

[Fri Jun 02 09:07:01.467017 2017] [core:notice] [pid 31617] AH00094: Command line: '/usr/sbin/apache2'
suexec policy violation: see suexec log for more details

suexec.log

[2017-06-02 09:07:26]: uid: (1001/netmet) gid: (1001/netmet) cmd: index.cgi
[2017-06-02 09:07:26]: command not in docroot (/home/netmet/html/index.cgi)

オンラインで解決策を見つけた後、人々はこれを提案しました。

~# /usr/lib/apache2/suexec -V
-D SUEXEC_CONFIG_DIR=/etc/apache2/suexec/
-D AP_GID_MIN=100
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100

なぜドキュメントルート見せないでください? ?

答え1

apache2-suexec-customをインストールした後に変更できます。

apt-get install apache2-suexec-custom

構成を変更します。

/etc/apache2/suexec

apache2 サービスを再起動します。

関連情報