summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Makefile44
-rw-r--r--scripts/chroot-man.sh2
-rw-r--r--scripts/chroot-prompt.sh6
-rw-r--r--scripts/sshd_config13
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