how to make ircd and iauth work in chroot we have two ways to do it a) make chroot environment in such a way that, say, shell is running within it b) setup such an environment for ircd only if you are going to use iauth, you will end up setting up a) [minus copying shell itself] *** making chroot environment we need libraries. actually ircd needs them. ldd is your friend. truss is your friend as well. iauth needs /dev/zero make sure, that disk you are using is not mounted with nosuid (or nodev) options if you need /dev/zero on solaris I made ksh work with the following structure: root@solaris:/home2/chroot# find . ./etc ./etc/passwd ./etc/group ./dev ./dev/zero ./usr ./usr/lib ./usr/lib/ld.so.1 ./usr/lib/libc.so.1 ./usr/lib/libdl.so.1 ./usr/lib/libm.so.1 ./usr/lib/libmp.so.2 ./usr/lib/libnsl.so.1 ./usr/lib/libsocket.so.1 ./usr/bin ./usr/bin/ksh ./usr/platform ./usr/platform/SUNW,Ultra-4 ./usr/platform/SUNW,Ultra-4/lib ./usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1 ./etc/passwd and group are placeholders, they contain nothing usefull we can test it: root@solaris:/home2/chroot# chroot /home2/chroot /usr/bin/ksh couldn't set locale correctly u@h:w# pwd / u@h:w# ls /usr/bin/ksh: ls: not found u@h:w# echo * dev etc home usr u@h:w# exit mind, that "ls: not found" is perfectly valid -- we didn't copy /usr/bin/ls to /home2/chroot/usr/bin, did we? :) when it's working, time for ircd. configure --prefix=/home/ircd edit config.h to define CHROOTDIR and set ROOT_PATH to "/home2/chroot" (well, make other config.h changes there, too) compile (should be fine) and now bad part, install unfortunately we don't have proper installation in chroot [yet!] run 'make -n install' and see, what files go where, like: /usr/bin/install -c -m 711 ircd /home/ircd/sbin /usr/bin/install -c -m 711 iauth /home/ircd/sbin /usr/bin/install -c -m 644 ../doc/example.conf /home/ircd/etc now issue those commands, but adding whatever ROOT_PATH you set, like: /usr/bin/install -c -m 711 ircd /home2/chroot/home/ircd/sbin /usr/bin/install -c -m 711 iauth /home2/chroot/home/ircd/sbin /usr/bin/install -c -m 644 ../doc/example.conf /home2/chroot/home/ircd/etc or copy files manually. or cheat. after successful 'make server' edit Makefile, change prefix to /home2/chroot/home/ircd, write&quit, touch *.o and run make install-server that's my favourite. then you will be able to run /home2/chroot/home/ircd/sbin, as root of course. would be good, if you define IRC_UID with that. eventhough it's not working now ;>