46 lines
880 B
Bash
Executable File
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"
|