大学の課題で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って何だ? いつの間にこうなったんだ?
誰かつまずきそうなのでメモ + 誰か中の話し教えて