diff options
author | C. McEnroe | 2020-02-11 22:07:01 -0500 |
---|---|---|
committer | C. McEnroe | 2020-02-11 22:28:39 -0500 |
commit | 252428f97aa6a8f4e5b612757ce96d2d0d37e2f3 (patch) | |
tree | eccc953e0838dccb5912fcf4a408c8084ff304a5 | |
parent | 907d4b4605a212a645fc78420a29fa34ed9c0642 (diff) |
Add chroot target
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 44 | ||||
-rw-r--r-- | scripts/chroot-man.sh | 2 | ||||
-rw-r--r-- | scripts/chroot-prompt.sh | 6 | ||||
-rw-r--r-- | scripts/sshd_config | 13 |
5 files changed, 67 insertions, 0 deletions
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 |