TS Studio
  Top > アーカイブ > パソコン > suEXECサポート Apache RPMの作成

更新日:2022/2/11

suEXECサポート Apache RPMの作成

この文書はVine Linux 2.5において,suExecサポートApacheのRPM作成のメモです。

作成日 2003年2月


suEXECサポートとは

Apacheでは,suEXECという仕組みを使うことにより,CGIやSSIを通常のHTTPサーバの権限以外で実行することができます。

ディストリビューション標準のRPMパッケージでは,suEXECサポートは無効の状態になっています。suEXECサポートを有効にするためには,suEXECサポートに関するコンパイルオプションを設定し直す必要があるので,SRPMパッケージに手を加える必要があります。

なお,通常の./configureとmake installを使ったインストール方法はRPMパッケージ管理から外れる方法であるので紹介していません。

RPMの作成

  • 必要なファイル:apache-1.3.27-0vl2.src.rpm(2003年2月現在)

予め次の項目については調べておいて下さい。[ ]内は私が設定したものです。

  • Apacheの実行ユーザ:[apache
  • suEXECを適用したいユーザの中で一番数字の小さい人のuidとgid:[uid:100,gid:500
  • suEXECを適用したいファイルが格納されているディレクトリで最上位のディレクトリ:[/home
  • 一般ユーザがHTMLファイルを設置するディレクトリ:[public_html

FTPサイトよりApacheのSRPMをダウンロードし,一般ユーザにてSRPMをインストールします。

$ rpm -ivh apache-1.3.27-0vl2.src.rpm

Vine Linuxの場合は,ホームディレクトリのrpmにインストールされます。次にSPECS内にあるapache.specを開いて,次の部分を編集します。

(200行目付近:コンパイルオプションの設定)
--suexec-docroot=/home \
--suexec-uidmin=100 \
--suexec-gidmin=500 \
--suexec-userdir=public_html \
--suexec-caller=apache

(378行目付近:suexecにsetuidを設定する)
attr(4510,root,apache) %{_sbindir}/suexec
#%attr(0711,root,root) %{_sbindir}/suexec

編集したらRPMパッケージを作成し,スーパーユーザでRPMをインストールします。

$ rpm -bb apache.spec

httpd.confはCGI,SSIが実行できるように設定します。

suEXECが使用できる状態では,次のように表示されます。

# /usr/sbin/httpd -l

suexec: enabled; valid wrapper /usr/sbin/suexec

suEXECの実行

suEXECは,次の条件を満たす場合のみ実行されます。詳細はApacheの文書を見て下さい。

  • --suexec-docrootで設定したディレクトリ以下にあるファイル
  • ファイル,ディレクトリの全てが,ユーザ自身およびプライマリグループ
    (プライマリグループ:/etc/passwdに書かれているグループ)
  • ディレクトリには他人(Other)は書き込めない
    (パーミッションは,xx7でないこと)

Copyright(C) 1997-2022 Suzumura Tomohiro All rights reserved.