chiark / gitweb /
Initial commit. master
authorMark Wooding <mdw@distorted.org.uk>
Thu, 16 May 2024 23:21:16 +0000 (00:21 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 16 May 2024 23:21:16 +0000 (00:21 +0100)
.gitignore [new file with mode: 0644]
bin/mkgaol [new file with mode: 0755]
bin/refresh [new file with mode: 0755]
ssh-common/Makefile [new file with mode: 0644]
ssh-common/sshsvc.conf [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..6ffc87c
--- /dev/null
@@ -0,0 +1,4 @@
+/*/
+!/bin/
+!/ssh-common/
+/ssh-common/keys/
diff --git a/bin/mkgaol b/bin/mkgaol
new file mode 100755 (executable)
index 0000000..8e0099e
--- /dev/null
@@ -0,0 +1,32 @@
+#! /bin/bash -e
+
+shopt -s nullglob
+case $# in 1) dir=$1 ;; *) echo >&2 "usage: $0 DIR"; exit 2 ;; esac
+cd "$dir"
+
+keep=("./files" "./files.*" "./.ssh/keys")
+
+clear_dir () {
+  local p q
+
+  for p in "$1"/..?* "$1"/.[!.]* "$1"/*; do
+    for q in "${keep[@]}"; do
+      case $p in $q) continue 2 ;; esac
+      case $q in "$p"/*) clear_dir "$p"; continue 2 ;; esac
+    done
+    rm -rf "$p"
+  done
+}
+clear_dir .
+
+mkdir -p .ssh/keys etc lib usr/bin
+ln -s ../../ssh-common/Makefile ../../ssh-common/sshsvc.conf .ssh/
+make -C.ssh/
+cp /usr/bin/rsync usr/bin/
+ldd /usr/bin/rsync | while read line; do
+  set -- $line
+  for i in "$@"; do case "$i" in /*) cp "$i" lib/ ;; esac; done
+done
+
+grep -E '^(root:|sysupl-)' /etc/passwd >etc/passwd
+grep -E '^(root:|sysupl-)' /etc/group >etc/group
diff --git a/bin/refresh b/bin/refresh
new file mode 100755 (executable)
index 0000000..6a23dc8
--- /dev/null
@@ -0,0 +1,6 @@
+#! /bin/sh -e
+
+for i in */; do
+  case $i in bin/ | ssh-common/) continue ;; esac
+  bin/mkgaol "$i"
+done
diff --git a/ssh-common/Makefile b/ssh-common/Makefile
new file mode 100644 (file)
index 0000000..f9ecfea
--- /dev/null
@@ -0,0 +1,4 @@
+### -*-makefile-*-
+
+authorized_keys: sshsvc.conf keys/ $(wildcard keys/*.pub)
+       sshsvc-mkauthkeys
diff --git a/ssh-common/sshsvc.conf b/ssh-common/sshsvc.conf
new file mode 100644 (file)
index 0000000..060a445
--- /dev/null
@@ -0,0 +1,2 @@
+### -*-sh-*-
+unset cmd