scripts/bakeradd/bin/bakeradd

46 lines
880 B
Bash
Executable File

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