#!/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"