0789root▲ ★
04/11/05 16:15:42ID:???query を受け、その結果をDNSサーバ(tinydns)が、stdoutに吐きます。
通常だとtinydnsの場合、daemontools経由でmultilogというプログラムにパイプされて、
システムログとしてとられてゆくわけですが、
ここで簡単なプログラムを間にはさんで、トカゲプログラムにも出力を横流しするようにしています。
トカゲプログラムをそのままの形で起動するとユーザの権限が変わってしまうので、
setuidgidを使って、トカゲのユーザID/グループIDで起動するように設定してあります。
より具体的には、daemontoolsのlog/runを、
#!/bin/sh
exec setuidgid dnslog multilog t ./main
とかから、
exec 横取りプログラム
とかに変更して、
横取りプログラムの子供としてトカゲプログラム(トカゲユーザの権限)と
従来のmultilog(ログをとるユーザの権限)を呼ぶようにしていると。