Sponsored Content
Full Discussion: Automatic User Creation
Top Forums Shell Programming and Scripting Automatic User Creation Post 302752321 by charlieabee on Sunday 6th of January 2013 08:17:30 PM
Old 01-06-2013
gahh I'm confused. I was under the impression that I was incrementing the value which then dictates which line to read from the file.

the code you've said I should use, could you possibly help me in terms of what I need to replace if I put that in and where etc?

Sorry I'm just so new to shell scripting, total noob.

---------- Post updated at 08:17 PM ---------- Previous update was at 07:09 PM ----------

I have managed to integrate your suggestion Jerry thanks a lot for the help but it's brought up another issue now, maybe simply fixed but I can't get my head around it.

This is my code now:
Quote:
useradd () {

while read eachline
do
existinguser=$(find /home -name $eachline)
if
[ -s $existinguser ]
then
sudo useradd -m $eachline
else
userexists

fi
done < Usernames


}

userexists () {
echo "PRESS 1 TO DELETE THE OLD $existinguser ACCOUNT, OR 2 TO KEEP IT, BUT RENAME IT WITH _OLD PREFIX:"
read input
echo $input

if [ $input -eq '1' ]
then
user=$(basename $existinguser)
sudo userdel $user
sudo rm -rf $existinguser
echo "USER ACCOUNT DELETED"
sudo useradd -m $user
unset username
unset existinguser
unset user
elif [ $input -eq '2' ]
then
suffix="_old"
user=$(basename $existinguser)
sudo userdel $user
sudo mv /home/$user /home/$user$suffix
echo "USER ACCOUNT NAME SUFFIXED WITH _OLD"
sudo useradd -m $user
unset username
unset existinguser
unset user
fi

useradd

}

useradd
The script successfully creates user accounts for names of accounts that don't already exist but when the userexists () function is called it throws up an infinite loop error message that says,
Quote:
./makeUser1: 28: [: /home/shaun: unexpected operator
PRESS 1 TO DELETE THE OLD /home/shaun
/home/charlie/.local/share/Trash/files/shaun ACCOUNT, OR 2 TO KEEP IT, BUT RENAME IT WITH _OLD PREFIX:
ellis
./makeUser1: 45: [: Illegal number: ellis
./makeUser1: 55: [: Illegal number: ellis
If anybody can help me fix this issue it would be much appreciated!

thank's in advance again
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

user creation problem

hello, Actually I want to create a user for our brower based custom application for the mail access from our mailserver(linux). I create user dummy and I granted all the privileages to dummy user and made dummy equivelent to root and if I tried to create a another user logging as dummy ... (1 Reply)
Discussion started by: jarkvarma
1 Replies

2. UNIX for Advanced & Expert Users

Automatic time out of user login

I have asked by our security team to implement an automatic time out for user logins after a specified time interval. I have never heard of this feature in Unix before. Does anyone know of a way to accomplish this for HP-UX 11i? (2 Replies)
Discussion started by: keelba
2 Replies

3. Solaris

User creation

Hi all, I want to create one user with full permissions to one directory called /opt/tivoli/tsm/client/ba/bin. Name for the user Tivoli Thanks & Regards Babu (7 Replies)
Discussion started by: lbreddy
7 Replies

4. Solaris

User Creation

i am trying to create a user on solaris 10. it is not taking user name with more than ten characters. which file i need to edit to do this setting. (4 Replies)
Discussion started by: raynu.sharma
4 Replies

5. Red Hat

User creation

Hi Thanks in advance. How to create a user without useradd command ?? (1 Reply)
Discussion started by: krish4linux
1 Replies

6. Solaris

Need help with user creation

Hello guys, i have a problem where i cant create a user and here some problem that i encounter. 1. /etc/passwd seems locked. 2. getting this error UX: useradd: ERROR: Cannot update system files - login cannot be created. # useradd -u 47367 -g 1084 -c "user123" -d /local/home/user123 -s... (2 Replies)
Discussion started by: brew
2 Replies

7. AIX

User creation

hi seniors i want to create the users like when the user try to login it should not should not promt for passwd is it possible to create users like this please help me (6 Replies)
Discussion started by: senmak
6 Replies

8. Shell Programming and Scripting

User creation script

Hi Gems.. I am working out on project of creating a mass user on 100 server. Please help me with script where i can create an user id of new 80 user using shell script Thanks in advance. Indrajit Bhagat (1 Reply)
Discussion started by: indrajit_renu
1 Replies

9. Solaris

NIS user creation

Hi can anyone help me how to create a NIS user by editing the files like Passwd,group, Netgroup,auto.home and Aliases using the "enis" utility? Please do the needful................................ (4 Replies)
Discussion started by: Revathi@1
4 Replies
useradd(8)						      System Manager's Manual							useradd(8)

NAME
useradd - create a new user account SYNOPSIS
useradd [-D binddn] [-P path] [-c comment] [-d homedir] [-e expire] [-f inactive] [-G group,...] [-g gid] [-m [-k skeldir]] [-o] [-p password] [-u uid] [-U umask] [-r] [-s shell] [--service service] [--help] [--usage] [-v] [--preferred-uid uid] account useradd --show-defaults useradd --save-defaults [-d homedir] [-e expire] [-f inactive] [-g gid] [-G group,...] [-k skeldir] [-U umask] [-s shell] DESCRIPTION
useradd creates a new user account using the default values from /etc/default/useradd and the specified on the command line. Depending on the command line options the new account will be added to the system files or LDAP database, the home directory will be created and the initial default files and directories will be copied. The account name must begin with an alphabetic character and the rest of the string should be from the POSIX portable character class ([A- Za-z_][A-Za-z0-9_-.]*[A-Za-z0-9_-.$]). OPTIONS
-c, --comment comment This option specifies the users finger information. -d, --home homedir This option specifies the users home directory. If not specified, the default from /etc/default/useradd is used. -e, --expire expire With this option the date when the account will be expired can be changed. expiredate has to be specified as number of days since January 1st, 1970. The date may also be expressed in the format YYYY-MM-DD. If not specified, the default from /etc/default/useradd is used. -f, --inactive inactive This option is used to set the number of days of inactivity after a password has expired before the account is locked. A user whose account is locked must contact the system administrator before being able to use the account again. A value of -1 disables this feature. If not specified, the default from /etc/default/useradd is used. -G, --groups group,... With this option a list of supplementary groups can be specified, which the user should become a member of. Each group is separated from the next one only by a comma, without whitespace. If not specified, the default from /etc/default/useradd is used. -g, --gid gid The group name or number of the user's main group. The group name or number must refer to an already existing group. If not speci- fied, the default from /etc/default/useradd is used. -k, --skel skeldir Specify an alternative skel directory. This option is only valid, if the home directory for the new user should be created, too. If not specified, the default from /etc/default/useradd or /etc/skel is used. -m, --create-home Create home directory for new user account. -o, --non-unique Allow duplicate (non-unique) User IDs. -p, --password password Encrypted password as returned by crypt(3) for the new account. The default is to disable the account. -U, --umask umask The permission mask is initialized to this value. It is used by useradd for creating new home directories. The default is taken from /etc/default/useradd. -u, --uid uid Force the new userid to be the given number. This value must be positive and unique. The default is to use the first free ID after the greatest used one. The range from which the user ID is chosen can be specified in /etc/login.defs. --preferred-uid uid Set the new userid to the specified value if possible. If that value is already in use the first free ID will be chosen as described above. -r, --system Create a system account. A system account is an user with an UID between SYSTEM_UID_MIN and SYSTEM_UID_MAX as defined in /etc/login.defs, if no UID is specified. The GROUPS entry in /etc/default/useradd is ignored, too. -s, --shell shell Specify user's login shell. The default for normal user accounts is taken from /etc/default/useradd, the default for system accounts is /bin/false. --service service Add the account to a special directory. The default is files, but ldap is also valid. -D, --binddn binddn Use the Distinguished Name binddn to bind to the LDAP directory. The user will be prompted for a password for simple authentica- tion. -P, --path path The passwd and shadow files are located below the specified directory path. useradd will use this files, not /etc/passwd and /etc/shadow. --help Print a list of valid options with a short description. --usage Print a short list of valid options. -v, --version Print the version number and exit. FILES
/etc/passwd - user account information /etc/shadow - shadow user account information /etc/group - group information /etc/default/useradd - default values for account creation /etc/skel - directory containing default files SEE ALSO
passwd(1), login.defs(5), passwd(5), shadow(5), userdel(8), usermod(8) AUTHOR
Thorsten Kukuk <kukuk@suse.de> pwdutils May 2010 useradd(8)
All times are GMT -4. The time now is 01:09 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy