Creating user accounts in batch mode
In this recipe, you will see how to create multiple user accounts in batch mode without using any external tool.
Getting ready
You will need a user account with root or root privileges.
How to do it...
Follow these steps to create a user account in batch mode:
- Create a new text file
users.txt
with the following command:$ touch users.txt
- Change file permissions with the following command:
$ chmod 600 users.txt
- Open
users.txt
with GNU nano and add user account details:$ nano users.txt
- Press Ctrl + O to save the changes.
- Press Ctrl + X to exit GNU nano.
- Enter
$ sudo newusers users.txt
to import all users listed inusers.txt
file. - Check
/etc/passwd
to confirm that users are created:
How it works…
We created a database of user details listed in same format as the passwd
file. The default format for each row is as follows:
username:passwd:uid:gid:full name:home_dir:shell
Where:
username
: This is the login name of the user. If a user exists, information for user will be changed; otherwise, a new user will be created.password
: This is the password of the user.uid
: This is theuid
of the user. If empty, a newuid
will be assigned to this user.gid
: This is thegid
for the default group of user. If empty, a new group will be created with the same name as the username.full name
: This information will be copied to thegecos
field.home_dir
: This defines thehome
directory of the user. If empty, a newhome
directory will be created with ownership set to new or existing user.shell
: This is the default loginshell
for the user.
The new user command reads each row and updates the user information if the user already exists, or it creates a new user.
We made the users.txt
file accessible to owner only. This is to protect this file, as it contains the user's login name and password in unencrypted format.