Logo
  • Ubuntu
  • CentOS
  • Debian
  • Fedora
  • RedHat

Usermod Command in Linux - DesignLinux

designlinux 0 Comments

usermod is a command-line utility that allows you to modify a user’s login information.

This article covers how to use the usermod command to add a user to a group, change a user shell, login name, home directory, and more.

usermod Command #

The syntax of the usermod command takes the following form:

usermod [options] USER

Only root or users with sudo access can invoke usermod and modify a user account. On success, the command does not display any output.

Add a User to a Group #

The most typical use case of the usermod is adding a user to a group.

To add an existing user to a secondary group, use the -a -G options followed the group’s name and the username:

usermod -a -G GROUP USER

If you want to add the user to multiple groups at once, specify the groups after the -G option separated with , (commas) with no intervening whitespace.

For example, to add the user linuxize to the games group, you would run the following command:

sudo usermod -a -G games linuxize

Always use the -a (append) option when adding a user to a new group. If you omit the -a option, the user will be removed from the groups not listed after the -G option.

If the user or group doesn’t exist, the command will warn you.

Change User Primary Group #

To change a user’s primary group, invoke the usermod command with by the -g option followed the group’s name and the username:

sudo usermod -g GROUP USER

In the following example, we are changing the primary group of the user linuxize to developers:

usermod -g developers linuxize

Each user can belong to exactly one primary group and zero or more secondary groups.

Changing the User Information #

To change the GECOS (the full name of the user) information, run the command with the -c option followed by the new comment and username:

usermod -c "GECOS Comment" USER

Here is an example showing how to add additional information to the user linuxize:

usermod -c "Test User" linuxize

This information is stored in the /etc/passwd file.

Changing a User Home Directory #

On most Linux systems, the user home directories are named after the name of the user and created under the /home directory.

If, for some reason, you want to change the user’ home directory invoke the usermod command with by the -d option followed the absolute path of the new home directory and the name of the user:

usermod -d HOME_DIR USER

By default, the command doesn’t move the content of the user’s home directory to the new one. To move the content, use the -m option. If the new directory does not already exist, it is created:

usermod -d HOME_DIR -m USER

Here is an example showing how to change the home directory of the user www-data to /var/www:

usermod -d /var/www www-data

Changing a User Default Shell #

The default shell is the shell that is run after you log in to the system. By default, on most Linux systems, the default shell is set to Bash Shell.

To change the user’s default shell, run the command with the -s option followed the absolute path of the shell and the name of the user:

usermod -s SHELL USER

In the example below, we are changing the user shell to Zsh:

sudo usermod -s /usr/bin/zsh linuxize

You can find out what shells are available on your system by displaying the /etc/shells file’s content.

Changing a User UID #

UID (the user identifier) is a number assigned to each user. It is used by the operating system to refer to a user.

To change the user UID, invoke the command with the -u option followed the new UID and the name of user:

usermod -u UID USER

The example below shows how to change the “UID” number to “1050”:

sudo usermod -u 1050 linuxize

The UID of the files owned by the user and are located in the user’s home directory, and the user’s mailbox file will be changed automatically. The ownership of all other files must be changed manually.

Changing a User Name #

Although not very often, sometimes you may want to change the name of an existing user. The -l option is used to change the username:

usermod -l NEW_USER USER

In the example below, we are renaming the user linuxize to lisa to “1050”:

sudo usermod -l linuxize lisa

When changing the username, you may also want to change the user’s home directory to reflect the new username.

Setting a User Expiry Date #

The expiry date is the date on which the user account will be disabled. To set the user’s expiry date, use the -e option:

sudo usermod -e DATE USER

The expiry date must be set using the format YYYY-MM-DD.

For example, to disable the user linuxize on 2022-02-21, you would run the following command:

sudo usermod -e "2022-02-21" linuxize

To disable the expiration of an account, set an empty expiry date:

sudo usermod -e "" linuxize

Use the chage -l command to view the user’s expiry date:

sudo chage -l linuxize
Last password change					: Jul 24, 2018
Password expires					: never
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

The expiration date is stored in the /etc/shadow file.

Locking and Unlocking a User Account #

The -L option allows you to lock a user account:

usermod -L USER

The commands will insert an exclamation point (!) mark in front of the encrypted password. When the password field in the /etc/shadow file contains an exclamation point, the user will not be able to login to the system using password authentication. Other login methods, like key-based authentication or switching to the user are still allowed. If you want to lock the account and disable all login methods, you also need to set the expiration date to 1.

The following examples shows how to lock the user linuxize:

sudo usermod -L linuxize
sudo usermod -L -e 1 linuxize

To unlock a user, run usermod with the -U option:

usermod -U USER

Conclusion #

We have shown you how to use the usermod command to set user account information.

Feel free to leave a comment if you have any questions.

terminal usermod

Related

Tags: terminal, usermod

How to Install Moodle Learning Platform in Ubuntu 20.04

Prev Post

How to Install Atom Text Editor on Ubuntu 20.04

Next Post
Archives
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • July 2022
  • June 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
Categories
  • AlmaLinux
  • Android
  • Ansible
  • Apache
  • Arch Linux
  • AWS
  • Backups
  • Bash Shell
  • Bodhi Linux
  • CentOS
  • CentOS Stream
  • Chef
  • Cloud Software
  • CMS
  • Commandline Tools
  • Control Panels
  • CouchDB
  • Data Recovery Tools
  • Databases
  • Debian
  • Deepin Linux
  • Desktops
  • Development Tools
  • Docker
  • Download Managers
  • Drupal
  • Editors
  • Elementary OS
  • Encryption Tools
  • Fedora
  • Firewalls
  • FreeBSD
  • FTP
  • GIMP
  • Git
  • Hadoop
  • HAProxy
  • Java
  • Jenkins
  • Joomla
  • Kali Linux
  • KDE
  • Kubernetes
  • KVM
  • Laravel
  • Let's Encrypt
  • LFCA
  • Linux Certifications
  • Linux Commands
  • Linux Desktop
  • Linux Distros
  • Linux IDE
  • Linux Mint
  • Linux Talks
  • Lubuntu
  • LXC
  • Mail Server
  • Manjaro
  • MariaDB
  • MongoDB
  • Monitoring Tools
  • MySQL
  • Network
  • Networking Commands
  • NFS
  • Nginx
  • Nodejs
  • NTP
  • Open Source
  • OpenSUSE
  • Oracle Linux
  • Package Managers
  • Pentoo
  • PHP
  • Podman
  • Postfix Mail Server
  • PostgreSQL
  • Python
  • Questions
  • RedHat
  • Redis Server
  • Rocky Linux
  • Security
  • Shell Scripting
  • SQLite
  • SSH
  • Storage
  • Suse
  • Terminals
  • Text Editors
  • Top Tools
  • Torrent Clients
  • Tutorial
  • Ubuntu
  • Udemy Courses
  • Uncategorized
  • VirtualBox
  • Virtualization
  • VMware
  • VPN
  • VSCode Editor
  • Web Browsers
  • Web Design
  • Web Hosting
  • Web Servers
  • Webmin
  • Windows
  • Windows Subsystem
  • WordPress
  • Zabbix
  • Zentyal
  • Zorin OS
Visits
  • 1
  • 63
  • 605,813

DesignLinux.com © All rights reserved

Go to mobile version