LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Need help finishing Bash Script to add new user and map virtual e-mail info. (https://www.linuxquestions.org/questions/linux-newbie-8/need-help-finishing-bash-script-to-add-new-user-and-map-virtual-e-mail-info-144018/)

O_Chaos 02-09-2004 07:36 AM

Need help finishing Bash Script to add new user and map virtual e-mail info.
 
Hi, I am writing a bash script that will ask some questions to add a new user, then call the adduser bash script with the variables entered..
I then want to edit the /etc/mail/virtusertable and /etc/mail/genericstable files to set up my e-mail addresses...

The files must be entered like this:

mail@abc.com user1 <-- this is for the virtable.
user1 mail.abc.com <-- the genericstable.

Here is where I am so far, this script sucessfully creates the user, but now I need to write to these files and can't figure it out... I am still learning bash scripting and found most of this code, and modified it to meet my needs so far. Any help would be greatly appreciated.


#!/bin/sh

echo ================================
echo Please enter new users full name
echo ================================
read fullname
echo
echo ===============================
echo Please enter new users Username
echo ===============================
read name
grep -i $name /etc/passwd;echo $? > /dev/null |grep $name
if grep -i $name /etc/passwd
then
echo =========================================
echo The username you are attempting to enter
echo either already exists or is invalid.
echo Please verify username.
echo =========================================
exit 1
fi

echo
echo ====================================
echo The following userids are available
echo Please use the first available one:
echo ====================================
cut -d: -f3 /etc/passwd > /tmp/used
i=550
while [ $i -re 500 ]
do
grep "^$i$" /tmp/used > /dev/null 2>&1
if [ $? -ne 0 ]
then
#echo "UID $i is available for use"
fi
i=`expr $i - 1`
done
rm /tmp/used
echo ===============================
echo Please enter new users userid
echo ===============================
read uid
echo ===============================
echo Please enter new users Password
echo ===============================
read password

clear
echo =====================================
echo Group numbers are as follows:
echo =====================================
echo Group1 = 501
echo Group2 = 502
echo =====================================
echo Enter the group number for this user:
echo =====================================
read group

clear
echo =========================================
echo The following information will be used to
echo create the new user. Ensure that all the
echo information presented is correct. If
echo there are problems with the information
echo press CTRL + C to cancel this process and
echo start over again.
echo ==========================================
echo
echo "Users full name is : $fullname"
echo "Users username is : $name"
echo "Users UID is : $uid"
echo "Users Password is : $password"
echo "Users group id is : $group"
echo "Users work shell is : /bin/bash"
echo "Users home directory is : /home/$name"
echo "Users Comment is : $fullname"
echo
echo ========================================
echo Press enter to continue creating account
read _enter
echo
echo
echo ========================================
echo The account is now being created .......
echo ========================================
adduser -u $uid -g $group -c "$fullname" $name -p $password

O_Chaos 02-09-2004 04:06 PM

I got this
 
I finished this... I cant believe it took me so long to find something so easy...

I will post it, so if some other noob is looking to build a script that will add a new user and assign virtual e-mail addresses for thier sendmail server, they will have it...

All I had to do was enter an input for the mail address and these 2 lines..

echo $mail $user >> /etc/mail/virtusertable
echo $user $mail >> /etc/mail/genericstable


All times are GMT -5. The time now is 10:43 AM.