68 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			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
 |