From 90b34e2f9ff8525e53b58c1305061167d3a5c13a Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Thu, 9 Apr 2020 22:37:09 +0000 Subject: [PATCH] bakeradd --- bakeradd/bin/bakeradd | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 bakeradd/bin/bakeradd diff --git a/bakeradd/bin/bakeradd b/bakeradd/bin/bakeradd new file mode 100755 index 0000000..ccac843 --- /dev/null +++ b/bakeradd/bin/bakeradd @@ -0,0 +1,45 @@ +#!/bin/bash +# bakeradd: utility to add bakers +# run with sudo + +set -euo pipefail + +shell=/bin/bash +name= +groups=bakers +keyfile= +user= + +die() +{ + case "$1" in + [0-9]*) ec=$?; shift ;; + *) ec=1 ;; + esac + echo "!! bakeradd : $@" + exit "$ec" +} + +while getopts s:n:G:k:u: opt; do + case "$opt" in + s) shell="$OPTARG" ;; + n) name="$OPTARG" ;; + G) groups="$groups${groups:+,}$OPTARG" ;; + k) keyfile="$OPTARG" ;; + u) user="$OPTARG" ;; + \?) die 2 "Unknown arg "-$opt" ;; + *) exit 2 ;; + esac +done + +[ -z "$name" ] && die "Need a name" +[ -z "$user" ] && die "Need a username" +[ -z "$keyfile" ] && die "Need a keyfile" + +echo "Adding the user..." +adduser --shell="$shell" --gecos="$name" --disabled-password "$user" +usermod -a -G"$groups" "$user" + +"echo "Setting up ssh..." +sudo --user="$user" mkdir "/home/$user/.ssh" +sudo --user="$user" cp "$keyfile" "/home/$user/.ssh/authorized_keys2"