aboutsummaryrefslogtreecommitdiff
path: root/authorized_keys.sh
diff options
context:
space:
mode:
authorGravatar steering72532026-04-08 03:50:25 +0200
committerGravatar steering72532026-04-08 03:57:04 +0200
commitd3ec864c134ebcf05ea82bad7f565a61bb418feb (patch)
tree1e88a0a7ff59ed461cbbe3ae9793e6b9cdb7f178 /authorized_keys.sh
init
Diffstat (limited to 'authorized_keys.sh')
-rwxr-xr-xauthorized_keys.sh17
1 files changed, 17 insertions, 0 deletions
diff --git a/authorized_keys.sh b/authorized_keys.sh
new file mode 100755
index 0000000..75c2704
--- /dev/null
+++ b/authorized_keys.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+set -o pipefail
+
+user="$1"
+if [ "$1" = "new" ]; then
+ type="$2"
+ key="$3"
+ if user="$(grep -l -s -r -P '^\s*auth:\s*\Q'"$type"'\E\s+\Q'"$key"'\E$' /opt/autopeer/dn42-registry/data/mntner/ | perl -ne 's@^.*/@@; s@-MNT$@@; print lc;' | head -1)"; then
+ perl -ne 'print if s@^\s*auth:\s*ssh-@ssh-@' </opt/autopeer/dn42-registry/data/mntner/"$(echo "$user" | perl -ne 's@$@-MNT@; print uc;')"
+ /usr/sbin/adduser --disabled-password --quiet --comment "created at $(date +%s) by $key" --ingroup autopeer "$user"
+ fi
+else # not new user
+ perl -ne 'print if s@^\s*auth:\s*@@' </opt/autopeer/dn42-registry/data/mntner/"$(echo "$user" | perl -ne 's@$@-MNT@; print uc;')"
+fi
+
+exit 0