HOME / コンピュータTips / Solaris / SolarisでWikiPlus用に(Linuxに似た)のSuExecを作る

Date: 2008/10/25 |  このエントリーをはてなブックマークに追加  |  Tags: OpenSolaris, Solaris, SuExec

OpenSolaris/SolarisでWikiPlus用(Linuxに似た)のSuExecを作る

SuExecはセキュリティの関係上、定数でデータが入っているため

  • OSのポリシーに深く依存する

ことは、昨日のブログで掲載したとおり。

WikiPlusのディレクトリポリシーは微妙にLinuxの流儀(RHELの流儀?)を継承していることもあり、SolarisではSuExecがうまく動きません。

そこで、SuExecをうまく動かすためには、Linuxと似たような設定で動くsuexecをコンパイルしなくてはならないことになります。

まずは。同一バージョンのapacheのソースコードを拾ってきて、どこかに展開します。

次に、Solarisに入ってるapacheのコンパイル環境をみます。これには、下記のファイルを参照すればOKです。

/usr/apache2/2.2/build/config.nice

これを元にビルド用のスクリプトを書くことになります。ところが、レイアウトの設定が配布されるApacheについておらず・・・

"--enable-layout=Solaris-Apache2"

そこで下記のファイルを見て、レイアウトを作ります。

/usr/apache2/2.2/build/config_vars.mk

作ったレイアウトはこんなかんじです。

#   Solaris 10 / OpenSolaris Layout
<Layout Solaris-Apache2>
    prefix:        /usr/apache2/2.2
    exec_prefix:   ${prefix}
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/bin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/libexec
    mandir:        ${exec_prefix}/man
    sysconfdir:    /etc/apache2/2.2
    datadir:       /var/apache2/2.2
    installbuilddir: ${exec_prefix}/build
    errordir:      ${datadir}/error
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${datadir}/htdocs
    manualdir:     ${datadir}/manual
    cgidir:        ${datadir}/cgi-bin
    includedir:    ${exec_prefix}/include
    localstatedir: ${prefix}
    runtimedir:    /var/run/apache2/2.2
    logfiledir:    ${datadir}/logs
    proxycachedir: ${datadir}/proxy
</Layout>

これを、config.layoutの後ろに追加します。

BUILDには、先に、srclib/aprとsrclib/apr-utilをコンパイルする必要がありますが、ここでの目的は「Apacheをインストールする」ことではなくて、「suexecをインストールする」ことです。これに付随してapacheのコンパイルが必要になるため、仕方が無くコンパイルするだけです。

というわけで、ワークディレクトリにのみapr/apr-utilを入れればいいわけですから、結果的にこういうスクリプトになります。

#! /bin/sh
#
# Created by configure

CC="/opt/SUNWspro/bin/cc"; export CC
CFLAGS="-xO3 -xspace -Xa  -xildoff -xc99=all  -DSSL_EXPERIMENTAL -DSSL_ENGINE"; export CFLAGS
GREP=ggrep ;export GREP

PWD=`pwd`
WORKDIR={PWD}-worker
echo INSTALL TOOLS TO ${WORKDIR}
rm -rf ${WORKDIR}

cd srclib/apr
./configure --prefix=${WORKDIR}
gmake || exit
gmake install

echo ============================================
echo
echo Compiled  apr
echo 
echo ============================================

# Build and install apr-util 1.2
cd ../apr-util
./configure --prefix=${WORKDIR} --with-apr=${WORKDIR}
gmake || exit
echo ============================================
echo
echo Compiled  apr-util
echo 
echo ============================================



# Configure httpd
cd ../../
"./configure" \
"--prefix=/usr/apache2/2.2" \
"--enable-layout=Solaris-Apache2" \
"--enable-mods-shared=all" \
"--enable-so" \
"--enable-suexec" \
"--with-suexec-caller=webservd" \
"--with-suexec-userdir=htdocs" \
"--with-suexec-docroot=/var/www" \
"--with-suexec-uidmin=1000" \
"--with-suexec-gidmin=1000" \
"--enable-proxy" \
"--enable-proxy-connect" \
"--enable-proxy-ftp" \
"--enable-proxy-http" \
"--enable-proxy-ajp" \
"--enable-proxy-balancer" \
"--enable-cache" \
"--enable-file-cache" \
"--enable-disk-cache" \
"--enable-mem-cache" \
"--enable-deflate" \
"--enable-cgid" \
"--enable-cgi" \
"--enable-ssl" \
"--with-ssl=/usr/sfw" \
"--with-apr=srclib/apr" \
"--with-apr-util=srclib/apr-util" \
"--with-mpm=prefork" \
"CC=/opt/SUNWspro/bin/cc" \
"CFLAGS=-xO3 -xspace -Xa -xildoff -xc99=all -DSSL_EXPERIMENTAL -DSSL_ENGINE" \
"$@"

apacheをインストールする訳じゃないので、ldapに関しては削除(笑)今回はコンパイル環境を作るのが面倒だったため。

あとはBUILDスクリプトを実行し、

gmake

すれば、出来上がり。下記にsuexecがあります。

support/suexec

確認

./support/suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=1000
 -D AP_HTTPD_USER="webservd"
 -D AP_LOG_EXEC="/var/apache2/2.2/logs/suexec_log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=1000
 -D AP_USERDIR_SUFFIX="htdocs"

OKっぽいですね。

あとは/usr/apache2/2.2/binあたりにコピー。

cp support/suexec /usr/apache2/2.2/bin
chmod 4711/usr/apache2/2.2/bin/suexec

こんなになります。

# ls -l /usr/apache2/2.2/bin/suexec
-rws--x--x   1 root     bin        18540 Oct 25 01:52 /usr/apache2/2.2/bin/suexec

apacheは念のため、リスタートします。

動作チェックは、

error_log
suexec_log
ssl_request_log

あたりで何とかなるはずです。

インストールしている環境に何もないと、apacheコンパイル中、止まると思います。内容をよく見て

pkg search -r ファイル名

でやれば、インストールが必要なパッケージがわかるはずです。


コンピュータTips/Solaris

Recent Updates

openjdk(SPARC)

SPARC用のJAVA。 最近は新しいバージョンがSPARCでリリースされず、苦労している人も多いのですが、SPARC Solarisの界隈人達がビルドして代わりに使われているものです。 Solaris 11 SPARC jdk builds
»続きを読む

Solaris11のCPU(Critical Patch Unit)の当て方

コンピュータTips/Solaris/Solaris11のCPU(Critical Patch Unit)の当て方

Solaris 11.4には4つのリビジョンがあります。 2024年4月現在、Solaris自体の開発はメンテナンスフェーズになったわけでもなく、SRU毎に、最新機能がモリモリ入っていきます。 GA(Release 版) 一応、無償のOTNライセンスの利用も可能 いわゆる、リリース時点のバージョンのことですが、現在は 利用しません 。 以前は、1〜2年に1度の頻度でリリ …
»続きを読む

Emacs.appで書類(Documents)がアクセス出来ないとき

コンピュータTips/MacOSX/Emacs.appで書類(Documents)がアクセス出来ないとき

Catalina以降の権限問題なので、システム設定のセキュリティとポリシーの中にあるプライバシー内のFull Disk Accessに、Emacs.appと/usr/bin/rubyを入れればすむ。 /usrフォルダを、プライバシーの+から入れるのは、ちょっと面倒なので、あらかじめFinderのお気に入りの中に入れておくと良いでしょう。   rubyが入るのは、Emac …
»続きを読む

SONY WH-1000XM3

自分用メモです。 ノイズキャンセラーの性能が良い。 WH-1000Xのころは、ノイズキャンセラーを有効すると、音は聞こえないのに妙な音圧があったが、それがかなり軽減。個人的には気にならなくなった。 また、WH-1000Xのころは、ノイズキャンセラーを無効にしても、なんか作られたような音が出ていたような気がしたが、割と普通に聞こえる。 USB-Cになったのも良い。飛行機でも使う …
»続きを読む

Catalina(10.15)

Catalina Beta を入れ始めたので、自分用のまとめ。 2019/10/8、Catalinaが振ってきたので製品版用に記載を変えました。 32bitアプリを確認すること。 Activity Monitorで32bitアプリがわかるので、そういうアプリがあるなら代替品を見つけておくこと。 /etc以下のいくつかのファイルをバックアップしておくこと。 /etc …
»続きを読む

ディスクの不良を確認する(iostat -EnのError等)

ディスク関係のスタックをざっくり書くと次の様になっています 例、SAS Expanderを使う場合、 例、AHCIなどを使う場合、 これらのエラーは、次の様なコマンドで知ることができます。 出力結果例 このなかで、 たとえば、SATAディスクを利用している際に負荷が上がってしまい、ディスクの応答が間に合わないシチュエーションでは、Transport Errorが一気に …
»続きを読む

2017年、新年明けまして、おめでとうございます。

日記/2017年、新年明けまして、おめでとうございます。

新年明けまして、おめでとうございます。今年もよろしくお願いします。 昨年中は、皆様にお世話になりました。 昨年は、コツコツと3年程前から行ってきた改革がある程度完成された年で、この先5年、10年を見据えて、次のフェーズへと進む為の土台が完成した年でもありました。 それにキャッチアップする形で、個々の従業員一同が、役割を自覚し、明確に動けた年であったかと考えています。 …
»続きを読む

RSA鍵認証のみにし、Password認証を無効化する

意外に覚えきれなくて、いつも忘れるので、メモついでに残しておきます。 古いOpenSSHや、SunSSHの場合は、これも無効にします。 ユーザ目線でのザックリとした説明を。OpenSSHではなく別のSSH実装も含めて考えているので、OpenSSHのソースをじっくり読んだわけではないため、間違ってたらすみません。 まず、Password認証を無効にする場合、 PasswordAut …
»続きを読む

最新  |  << 前ページ  |  次ページ >>  |  最初