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