chrootに悩む

大学の課題でchroot環境下でなにかサーバを動かせ というものがあった。

まぁコレ簡単だよねー とか思ってやり始めた
サーバはapacheは大変そうだからthttpdでいいや。と思った

バイナリコピーしてlddで得られる必要なライブラリをコピーするだけでしょ?
と思ってたんだが

課題提出前なので自重
ユーザが認識されなくてthttpdは

# chroot ./ /usr/sbin/thttpd 
/usr/sbin/thttpd: unknown user - 'www-data'

とか怒ってくる。うーん なんだろ

当然/etcのpasswd,shadow,group,nsswitch.confはコピーしてある

でnsswitch.confってなんだろ?と思って覗いてみると

passwd:         compat
group:          compat
shadow:         compat
(以下略)

となっている。

うーんなんだろ 他にはfilesとかいう表記も見られた dbとかもある。
直感的にfilesだろ と思ったので修正

passwd:         files compat
group:          files compat
shadow:         files compat
(以下略)

でnsswitch.confのman page(http://www.linux.or.jp/JM/html/LDP_man-pages/man5/nsswitch.conf.5.html)みると

/lib/libnss_files.so.X

が必要らしいからそれもコピー

で動きました。

えっと compatって何だ? いつの間にこうなったんだ?
誰かつまずきそうなのでメモ + 誰か中の話し教えて