2022-07-25 20:15:22 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
###############################
|
|
|
|
# Script to add a student #
|
|
|
|
# Must be run as root #
|
|
|
|
# For use with Zential Server #
|
|
|
|
###############################
|
|
|
|
|
|
|
|
USERNAME=$1
|
|
|
|
NAME=$2
|
|
|
|
DEFAULT_QUOTA=256000 # 256MB
|
|
|
|
|
2023-02-16 15:26:18 +00:00
|
|
|
# Extract surname
|
|
|
|
LAST_NAME=$(echo $NAME | awk '{print $NF}')
|
|
|
|
|
2022-07-25 20:15:22 +00:00
|
|
|
# Check if arguments are not empty
|
|
|
|
if [ -z "$USERNAME" ] || [ -z "$NAME" ]; then
|
|
|
|
echo "Usage: $0 <username> <name>"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Check if $USERNAME has spaces
|
|
|
|
if [[ $USERNAME =~ " " ]]; then
|
|
|
|
echo "Username cannot have spaces"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
NAME=$(echo $NAME | tr "[A-Z]" "[a-z]" | sed -e "s/\b\(.\)/\u\1/g")
|
|
|
|
|
|
|
|
# Check if $USERNAME is already in use
|
|
|
|
if samba-tool user show $USERNAME >/dev/null 2>&1; then
|
|
|
|
echo "User $USERNAME already exists"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Create user
|
|
|
|
echo "Creating user $USERNAME with name $NAME and password $USERNAME"
|
2023-02-16 15:26:18 +00:00
|
|
|
samba-tool user create $USERNAME $USERNAME --userou='OU=Servidores,OU=IFMS-PP' --given-name="$NAME" --surname="$LAST_NAME" --home-drive='H:' --home-directory="\\\\acadsrv.ACAD.PP.IFMS.EDU.BR\\$USERNAME" --use-username-as-cn --must-change-at-next-login
|
2022-07-25 20:15:22 +00:00
|
|
|
|
|
|
|
# Add user to group alunos
|
|
|
|
echo "Adding user $USERNAME to group servidores"
|
|
|
|
samba-tool group addmembers servidores $USERNAME
|
|
|
|
|
|
|
|
# Create home directory
|
|
|
|
echo "Creating home directory for user $USERNAME"
|
|
|
|
mkdir /home/$USERNAME
|
|
|
|
echo "Setting permissions for home directory"
|
|
|
|
chmod 700 /home/$USERNAME/ -R
|
|
|
|
chown $USERNAME:'domain users' /home/$USERNAME/ -R
|
|
|
|
|
|
|
|
# Set user quota
|
|
|
|
./pdc-setquota.sh $USERNAME $DEFAULT_QUOTA
|
|
|
|
|
|
|
|
echo "User $USERNAME ($NAME) created. Password must be changed at next login."
|