diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | README | 3 | ||||
-rwxr-xr-x | chroot.sh | 41 |
3 files changed, 45 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore index 39fd7f6..2020094 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ +chroot.tar client help +root server torus.dat torus.sock diff --git a/README b/README index 198714d..520f878 100644 --- a/README +++ b/README @@ -9,5 +9,6 @@ C source files are self-compiling, e.g. ./server.c. client.c Curses client. help.c Automated client which redraws a helpful banner. - termcap.diff Patch for bright colors with TERM=xterm-256color. + chroot.sh Creates chroot tarball. sshd_config Anonymous login to chrooted client. + termcap.diff Patch for bright colors with TERM=xterm-256color. diff --git a/chroot.sh b/chroot.sh new file mode 100755 index 0000000..fe4442a --- /dev/null +++ b/chroot.sh @@ -0,0 +1,41 @@ +#!/bin/sh +set -e -u -x + +./server.c +./client.c +./help.c + +if [ ! -f termcap.db ]; then + patch -p0 -o termcap < termcap.diff + cap_mkdb termcap +fi + +user=torus +ownflags='-o root -g wheel' +dirflags="-d $ownflags" +binflags="$ownflags -m 555" +libflags="$ownflags -m 444" + +mkdir -p root + +for dir in bin home lib libexec usr; do + sudo install $dirflags root/$dir +done +sudo install $dirflags root/usr/share +sudo install $dirflags root/usr/share/misc +sudo install -d -o $user -g $user root/home/$user + +sudo install $binflags /libexec/ld-elf.so.1 root/libexec + +for lib in libc.so.7 libedit.so.7 libncurses.so.8 libncursesw.so.8; do + sudo install $libflags /lib/$lib root/lib +done + +for bin in server client help; do + sudo install $binflags $bin root/bin +done +sudo install $binflags /bin/sh root/bin + +sudo install $libflags termcap.db root/usr/share/misc + +tar -c -f chroot.tar -C root bin home lib libexec usr |