From 252428f97aa6a8f4e5b612757ce96d2d0d37e2f3 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Tue, 11 Feb 2020 22:07:01 -0500 Subject: [PATCH] Add chroot target --- .gitignore | 2 ++ Makefile | 44 ++++++++++++++++++++++++++++++++++++++++ scripts/chroot-man.sh | 2 ++ scripts/chroot-prompt.sh | 6 ++++++ scripts/sshd_config | 13 ++++++++++++ 5 files changed, 67 insertions(+) create mode 100644 scripts/chroot-man.sh create mode 100644 scripts/chroot-prompt.sh create mode 100644 scripts/sshd_config diff --git a/.gitignore b/.gitignore index 4cc4220..e96e0c1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ *.o catgirl +chroot.tar config.mk +root/ tags diff --git a/Makefile b/Makefile index b1ffede..4d20e62 100644 --- a/Makefile +++ b/Makefile @@ -39,3 +39,47 @@ install: catgirl catgirl.1 uninstall: rm -f ${PREFIX}/bin/catgirl ${MANDIR}/man1/catgirl.1.gz + +CHROOT_USER = chat +CHROOT_GROUP = ${CHROOT_USER} + +chroot.tar: catgirl catgirl.1 scripts/chroot-prompt.sh scripts/chroot-man.sh + install -d -o root -g wheel \ + root \ + root/bin \ + root/etc/ssl \ + root/home \ + root/lib \ + root/libexec \ + root/usr/bin \ + root/usr/share/man \ + root/usr/share/misc + install -d -o ${CHROOT_USER} -g ${CHROOT_GROUP} \ + root/home/${CHROOT_USER} \ + root/home/${CHROOT_USER}/.local/share + cp -fp /libexec/ld-elf.so.1 root/libexec + cp -fp \ + /lib/libc.so.7 \ + /lib/libncursesw.so.8 \ + /lib/libthr.so.3 \ + /lib/libz.so.6 \ + /usr/local/lib/libcrypto.so.45 \ + /usr/local/lib/libssl.so.47 \ + /usr/local/lib/libtls.so.19 \ + root/lib + chflags noschg root/libexec/* root/lib/* + cp -fp /etc/hosts /etc/resolv.conf root/etc + cp -fp /etc/ssl/cert.pem root/etc/ssl + cp -af /usr/share/locale root/usr/share + cp -fp /usr/share/misc/termcap.db root/usr/share/misc + cp -fp /rescue/sh /usr/bin/mandoc /usr/bin/less root/bin + ${MAKE} install PREFIX=root/usr + install scripts/chroot-prompt.sh root/usr/bin/catgirl-prompt + install scripts/chroot-man.sh root/usr/bin/man + tar -c -f chroot.tar -C root bin etc home lib libexec usr + +install-chroot: chroot.tar + tar -x -f chroot.tar -C /home/${CHROOT_USER} + +clean-chroot: + rm -fr chroot.tar root diff --git a/scripts/chroot-man.sh b/scripts/chroot-man.sh new file mode 100644 index 0000000..9d686f9 --- /dev/null +++ b/scripts/chroot-man.sh @@ -0,0 +1,2 @@ +#!/bin/sh +exec mandoc /usr/share/man/man1/catgirl.1 | LESSSECURE=1 less diff --git a/scripts/chroot-prompt.sh b/scripts/chroot-prompt.sh new file mode 100644 index 0000000..3b43841 --- /dev/null +++ b/scripts/chroot-prompt.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -eu + +printf 'Name: ' +read -r nick rest +exec catgirl -n "$nick" -s "$nick" "$@" diff --git a/scripts/sshd_config b/scripts/sshd_config new file mode 100644 index 0000000..4669f7f --- /dev/null +++ b/scripts/sshd_config @@ -0,0 +1,13 @@ +UsePAM no + +Match User chat + PasswordAuthentication yes + PermitEmptyPasswords yes + ChrootDirectory /home/chat + ForceCommand catgirl-prompt + + AllowAgentForwarding no + AllowTcpForwarding no + AllowStreamLocalForwarding no + MaxSessions 1 + X11Forwarding no