56 lines
1.3 KiB
Bash
Executable File
56 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# echo $@ >> /etc/ttyserver/mkuser.log
|
|
# exit 0
|
|
|
|
#whoami >> /etc/ttyserver/mkuser.log
|
|
#exit 0
|
|
|
|
# $1 = username
|
|
# $2 = tempfile
|
|
LOGFILE="/etc/ttyserver/mkuser.log"
|
|
|
|
if [ "$EUID" -ne 0 ];then
|
|
#echo "Please run as root"
|
|
echo "Not run as root" >> $LOGFILE
|
|
exit 60
|
|
fi
|
|
|
|
#echo $1 >> $LOGFILE
|
|
# If not exists, create new user with
|
|
|
|
if [[ "$1" =~ ^[a-zA-Z0-9][a-zA-Z0-9-]+$ ]]; then
|
|
echo "Valid username: \"$1\"" >> $LOGFILE
|
|
# Is valid username
|
|
CHECKUSER=`getent passwd "$1"`
|
|
if [[ ${#CHECKUSER} -gt 6 ]]; then
|
|
# User Exists
|
|
echo "\"$1\" Exists" >> $LOGFILE
|
|
else
|
|
useradd -G webadd -m -b /htusers -s /usr/bin/bash --gid 1004 "$1"
|
|
ln -s "/htusers/$1/public_gemini /var/gemini/$1"
|
|
echo "Added \"$1\" to the system" >> $LOGFILE
|
|
fi
|
|
# Ensure SSH filder exists
|
|
USERDIR="$(eval echo "~$1")"
|
|
if [ ! -d "$USERDIR/.ssh" ]; then
|
|
echo "Generate ssh directory for \"$1\"" >> $LOGFILE
|
|
mkdir -p "$USERDIR/.ssh"
|
|
chown -R "$1" "USERDIR/.ssh"
|
|
else
|
|
echo "User .ssh exists" >> $LOGFILE
|
|
fi
|
|
# Append new key
|
|
echo "$2 -> $USERDIR/.ssh/authorized_keys" >> $LOGFILE
|
|
cat "$2" >> "$USERDIR/.ssh/authorized_keys"
|
|
chmod 700 "$USERDIR/.ssh/authorized_keys"
|
|
chown "$1" "$USERDIR/.ssh/authorized_keys"
|
|
# Remove temp file
|
|
rm -f "$2"
|
|
echo "Done appending key to \"$1\"" >> $LOGFILE
|
|
exit 0
|
|
else
|
|
echo "\"$1\" Was an invalid username" >> $LOGFILE
|
|
exit 64
|
|
fi
|