#!/bin/bash if [ -z "$1" ] || [ -z "$2" ]; then echo "Usage: $0 "; exit 1 fi CHROOT_USERNAME="$1" CHROOT_GROUP="$(id -gn $CHROOT_USERNAME)" CHROOT_HOME="$2" SDIR="$(pwd)" test -d "$CHROOT_HOME" || mkdir -p "$CHROOT_HOME" cd "$CHROOT_HOME" mkdir -p bin dev etc usr usr/bin usr/lib usr/lib/ssh lib mknod -m 0666 dev/tty c 5 0 mknod -m 0644 dev/urandom c 1 9 cp /etc/nsswitch.conf etc touch etc/resolv.conf etc/profile echo "order hosts" > etc/host.conf echo "127.0.0.1 localhost" > etc/hosts egrep "^(root|$CHROOT_USERNAME)" /etc/passwd > etc/passwd egrep "^(root|$CHROOT_GROUP)" /etc/group > etc/group mkdir .ssh touch .ssh/known_hosts chown "$CHROOT_USERNAME:$CHROOT_GROUP" .ssh/known_hosts cp /bin/bash /bin/ls /bin/mkdir /bin/mv /bin/pwd /bin/rm /bin/ping bin/ cp /usr/bin/id /usr/bin/ssh /usr/bin/scp usr/bin/ cp /usr/lib/ssh/sftp-server usr/lib/ssh/ echo -e "#!/bin/bash\nid -Gn" > usr/bin/groups chmod +x usr/bin/groups cp \ /lib/ld-linux.so.2 \ /lib/libc.so.6 \ /lib/libcrypt.so.1 \ /lib/libdl.so.2 \ /lib/libhistory.so.4 \ /lib/libm.so.6 \ /lib/libncurses.so.5 \ /lib/libnsl.so.1 \ /lib/libnss_files.so.2 \ /lib/libnss_compat.so.2 \ /lib/libpthread.so.0 \ /lib/libpam.so.0 \ /lib/libpam_misc.so.0 \ /lib/libreadline.so.4 \ /lib/libresolv.so.2 \ /lib/librt.so.1 \ /lib/libutil.so.1 \ /lib/libz.so.1 \ lib/ cp \ /usr/lib/libcrypto.so.0.9.6 \ usr/lib/ cd "$SDIR"