From 7ee48f98d96b086cd8816a28312291a609287cc7 Mon Sep 17 00:00:00 2001 From: Douglas Barone Date: Mon, 25 Jul 2022 16:15:22 -0400 Subject: [PATCH] Updated scripts --- pdc-add-user-servidor.sh | 53 +++++++++++++++++++++++++++++++++++ pdc-bulk-add-user-servidor.sh | 36 ++++++++++++++++++++++++ pdc-bulk-addtogroup.sh | 45 +++++++++++++++++++++++++++++ 3 files changed, 134 insertions(+) create mode 100755 pdc-add-user-servidor.sh create mode 100755 pdc-bulk-add-user-servidor.sh create mode 100755 pdc-bulk-addtogroup.sh diff --git a/pdc-add-user-servidor.sh b/pdc-add-user-servidor.sh new file mode 100755 index 0000000..1d4f715 --- /dev/null +++ b/pdc-add-user-servidor.sh @@ -0,0 +1,53 @@ +#!/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 + +# Check if arguments are not empty +if [ -z "$USERNAME" ] || [ -z "$NAME" ]; then + echo "Usage: $0 " + 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 + +# Capitalize every first letter of $NAME + +# Create user +echo "Creating user $USERNAME with name $NAME and password $USERNAME" +samba-tool user create $USERNAME $USERNAME --userou='OU=Servidores,OU=IFMS-PP' --given-name="$NAME" --home-drive='H:' --home-directory="\\\\acadsrv.ACAD.PP.IFMS.EDU.BR\\$USERNAME" --use-username-as-cn --must-change-at-next-login + +# 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." diff --git a/pdc-bulk-add-user-servidor.sh b/pdc-bulk-add-user-servidor.sh new file mode 100755 index 0000000..f24b691 --- /dev/null +++ b/pdc-bulk-add-user-servidor.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +file=$1 + +# Check if arguments are not empty +if [ -z "$file" ]; then + echo "Usage: $0 " + exit 1 +fi + +# Check if file exists +if [ ! -f "$file" ]; then + echo "File $file does not exist" + exit 1 +fi + +# Check if file is empty +if [ ! -s "$file" ]; then + echo "File $file is empty" + exit 1 +fi + +while IFS="" read -r p || [ -n "$p" ]; do + USERNAME=$(echo $p | cut -d ";" -f 1) + NAME=$(echo $p | cut -d ";" -f 2) + + # Check if $USERNAME is empty + if [ -z "$USERNAME" ]; then + echo "Username is empty" + continue + fi + + echo "---" + ./pdc-add-user-professor.sh $USERNAME "$NAME" + +done <$file diff --git a/pdc-bulk-addtogroup.sh b/pdc-bulk-addtogroup.sh new file mode 100755 index 0000000..f55c90a --- /dev/null +++ b/pdc-bulk-addtogroup.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +file=$1 +group=$2 + +# Check if arguments are not empty +if [ -z "$file" ]; then + echo "Usage: $0 " + exit 1 +fi + +# Check if file exists +if [ ! -f "$file" ]; then + echo "File $file does not exist" + exit 1 +fi + +# Check if file is empty +if [ ! -s "$file" ]; then + echo "File $file is empty" + exit 1 +fi + +while IFS="" read -r p || [ -n "$p" ]; do + USERNAME=$(echo $p | cut -d ";" -f 1) + + # Check if $USERNAME is empty + if [ -z "$USERNAME" ]; then + echo "Username is empty" + continue + fi + + echo "---"# Add user to group alunos + echo "Adding user $USERNAME to group $group" + samba-tool group addmembers $group $USERNAME +done <$file + + + + + + + + +