実はかつて、ある仕事の話があって、簡単なパッチを作成したのです が、その仕事もぽしゃったりしたので、誰か欲しい人がいるかも、と 思いパッチを公開します。
xinetd が fork して各サーバを起動する前に chroot します。各サー ビス毎にchrootするかどうかを制御したり、IPアドレスや、ドメイン の名前等によってchrootするディレクトリを変更する事ができるため、 いろいろ使える可能性があると思います。(元々はバーチャルドメイ ン等の用途向けに作成しました。)
下にあるパッチを適用して、
autoconf
した後、configureのオプションに --with-virtual を付けてください。
このパッチを適用する事で、グローバルなオプションと各サービス毎 のオプションとして、
virtual
という項目が追加されます。virtualに設定できるのは、yesかnoとなっ ており、xinetd.confに
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
virtual = yes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
と記述しておくと、xinetdのデフォルトの振る舞いとして、chrootさ れるようになります。また各サービスの設定ファイルにvirtualディ レクティブを記述する事で、各サービス毎にchrootするかどうかの振 る舞いを制御する事ができます。
chroot の振る舞いは、virtdb ファイルによって制御します。このファ イルを etcディレクトリ以下に置いてください。(すみ ません。ソースに直に書いてます...)。
virddb ファイルの書式は以下のようになります。
domainname(or ip address): chroot先
ここで、chroot先に記述したものには、実際の動作時に、prefixとし て、homeがくっつくようになっています。つまり、下の例で、famao と書いてある場合には
/home/famao
へと置き変えられる事になります。
例
192.168.128.1: famao www.notuse.com: notuse
ここが変だ。といったバグ報告や、こうしてくれ、といった要望は、 famao@kondara.orgにまでメールしてください。カスタマイズしてく れ、という話も歓迎します(とかいう)。