ansible-config/roles/basics-ffhh/files/new-user
2022-04-14 13:43:05 +02:00

68 lines
1.2 KiB
Bash
Executable file

#!/bin/bash
#
# This script assumes that you want to add a user with name
# equal to a keyfile in the freiunkhamburg/ssh-keys repo
# on github.
#
# This script assumes you know what you are doing. ;)
#
# .. ohrensessel, 2017
#
echoerr() { echo "$@" 1>&2; }
if [ $# -eq 0 ]; then
echoerr Missing username
exit 1
fi
if [[ $EUID -ne 0 ]]; then
echoerr This script must be run as root
exit 1
fi
if id "$1" >/dev/null 2>&1; then
echoerr This user exists
exit 1
fi
wget -P /tmp https://raw.githubusercontent.com/freifunkhamburg/ssh-keys/master/"$1".pub &>/dev/null
if [ $? -ne 0 ]
then
echoerr Could not download key file, username not equal to name of key file?
exit 1
fi
echo
echo Adding user with name "$1" and ssh keys:
echo
cat /tmp/"$1".pub
echo
read -p "Are you sure? " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
echoerr Aborting...
rm /tmp/"$1".pub
exit 1
fi
useradd -m -G sudo "$1"
if [ $? -ne 0 ]
then
echoerr Could not add user
rm /tmp/"$1".pub
exit 1
fi
echo "$1":test123 | chpasswd &>/dev/null
chage -d0 "$1" &>/dev/null
mkdir /home/"$1"/.ssh
mv /tmp/"$1".pub /home/"$1"/.ssh/authorized_keys
chown "$1":"$1" /home/"$1"/.ssh -R
chmod 700 /home/"$1"/.ssh
chmod 600 /home/"$1"/.ssh/authorized_keys