diff options
| author | 2026-04-08 03:50:25 +0200 | |
|---|---|---|
| committer | 2026-04-08 03:57:04 +0200 | |
| commit | d3ec864c134ebcf05ea82bad7f565a61bb418feb (patch) | |
| tree | 1e88a0a7ff59ed461cbbe3ae9793e6b9cdb7f178 /authorized_keys.sh | |
init
Diffstat (limited to 'authorized_keys.sh')
| -rwxr-xr-x | authorized_keys.sh | 17 |
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 |
