What is the origin of the useradd command?

The useradd command is a standard command in most Unix-like operating systems, including Linux. It is part of the GNU Core Utilities package, which is a collection of essential command-line tools for managing files, processes, and users on a Unix system.

The useradd command was first introduced in the early versions of the Unix operating system, which was developed by Bell Labs in the 1970s. In those early versions, user accounts were added manually by modifying system files such as /etc/passwd, /etc/group, and /etc/shadow.

As Unix evolved, so did the process of adding user accounts. The useradd command was created to simplify the process of creating user accounts and automate the necessary steps, such as creating home directories and setting default shell and login settings.

Today, the useradd command is a standard part of most Unix-like operating systems and is widely used by system administrators to manage user accounts on servers and workstations.


Kwame is a new hire at Google. Janet needs to add him as a user on a RHEL system. She wants to use a sudo command to add username "kwame" with a /bin/bash shell, a default home directory, and a comment "Kwame Appiah". What command will she issue?

sudo useradd -m -s /bin/bash -c "Kwame Appiah" kwame

Here's a breakdown of the command:

  • sudo: Runs the useradd command with administrative privileges.
  • useradd: The command to add a new user to the system.
  • -m: Creates a home directory for the new user.
  • -s /bin/bash: Sets the user's default shell to /bin/bash.
  • -c "Kwame Appiah": Adds a comment to the user's account with the value "Kwame Appiah".
  • kwame: The username to be added to the system.

Once the command is executed, the user "kwame" will be created on the RHEL system with a home directory, the /bin/bash shell, and the specified comment.


Please show me an example of using useradd to add a large group of users to a RHEL system.

AStep 1: Create a file containing all of the usernames that you want to add:

touch userlist.txt

 vi userlist.txt





- save and close userlist.txt

Step 2: Use the useradd command to add the users (I'll assume that you are NOT the root user, so we'll preface useradd with "sudo".

sudo useradd -m -s /bin/bash -G mygroup $(cat userlist.txt)

The $(cat userlist.txt) command substitution will pass the contents of the userlist.txt file as arguments to the useradd command.

Step 3: Set the passwords for the new users using the passwd command.

sudo passwd johndoe
sudo passwd janedoe
sudo passwd kwamebrown
sudo passwd ovieho


What are the 10 most popular options used with the useradd command? Please show me example usage of each of the 10 options. Please assume that the user is not root so that "sudo" is normally used.

Here are 10 of the most commonly used options with the useradd command, along with examples of how to use them:

1. -m: This option creates a home directory for the new user.

sudo useradd -m username

2. -s: This option sets the default shell for the new user.

sudo useradd -s /bin/bash username

3. -g: This option sets the primary group for the new user.

sudo useradd -g groupname username

4. -G: This option adds the new user to one or more additional groups.

sudo useradd -G group1,group2 username

5. -c: This option adds a comment to the new user's account information.

sudo useradd -c "John Doe" username

6. -u: This option sets the UID (user ID) for the new user.

sudo useradd -u 1001 username

7. -p: This option sets the encrypted password for the new user.

sudo useradd -p password username

8. -e: This option sets the expiration date for the new user account.

sudo useradd -e 2024-12-31 username

9. -f: This option sets the number of days after the password expires before the account is disabled.

sudo useradd -f 30 username

10. -D: This option shows the default settings for the useradd command.

sudo useradd -D

This will display the default values for options such as the home directory, default shell, and password encryption method.

Note: The specific options available and their functionality may vary slightly depending on the version of the useradd command and the operating system being used.


Please explain the differences between these three:

  • sudo useradd -g
  • sudo useradd -G
  • sudo useradd -aG

All three options (-g, -G, and -aG) are used with the useradd command to specify the group membership of a new user. However, there are some differences between how they function:

  1. -g: This option specifies the primary group for the new user. The primary group is the group that is associated with the user's files and directories by default. If the group does not already exist, it will be created.


sudo useradd -g mygroup username

This command will create a new user named username and assign them to the group mygroup as their primary group.

  1. -G: This option specifies one or more additional groups for the new user. These are secondary groups that the user will be a member of in addition to their primary group. If any of the groups do not already exist, they will be created.


sudo useradd -G group1,group2 username

This command will create a new user named username and assign them to the groups group1 and group2 as secondary groups.

  1. -aG: This option adds one or more additional groups to the user's existing group membership. This option is used when adding a user to a new group without removing them from their existing groups.


sudo useradd -aG mygroup username

This command will add the user username to the group mygroup without changing their primary group or removing them from any of their existing groups.

In summary, the -g option specifies the primary group, the -G option specifies additional groups, and the -aG option adds new groups to the existing group membership.



You should also read:

useradd versus adduser

Christian is a RHEL Sysadmin at Google. He wants to master the similarities and differences between the useradd command and the adduser command.

Useradd 3

Marshawn is a recent hire at Red Hat and she's using a RHEL workstation. She's been tasked with creating a lesson plan for…

Useradd 2

Juan is getting ready to take a RHEL-based LFCS exam. Please tell me about strategies to pass the LCFS exam, and the top…