Managing Users and Permissions in Ubuntu: Creating and Managing Users

In any multi-user operating system, user management is a fundamental task. Linux, including Ubuntu, provides robust tools to handle users and permissions, which are essential for system administration. Whether you're setting up a server or managing a desktop system, knowing how to create, manage.

Managing Users and Permissions in Ubuntu: Creating and Managing Users

In any multi-user operating system, user management is a fundamental task. Linux, including Ubuntu, provides robust tools to handle users and permissions, which are essential for system administration. Whether you're setting up a server or managing a desktop system, knowing how to create, manage, and remove users is crucial.

In this blog post, we will explore the process of creating, managing, and deleting users in Ubuntu, and discuss how to assign users to groups for efficient permission control.

1. Introduction to User Management

In a Linux system like Ubuntu, every process and file is associated with a specific user. Each user has their own set of permissions that determine what actions they can perform, such as accessing files, running programs, and interacting with other parts of the system.

Linux user management revolves around two main tasks:

  • Creating and managing user accounts: For each individual who uses the system, you create a user account with specific access permissions.
  • Assigning permissions: These permissions are typically managed through groups, allowing administrators to organize users with similar access levels.

User management becomes especially important on multi-user systems such as servers, where administrators must control who can access which resources.

2. User and Group Concepts in Linux

Before diving into the commands, it’s essential to understand a few core concepts about users and groups in Linux.

Users

A user in Linux is an entity that can interact with the system. Each user has a unique UID (User ID) that Linux uses to distinguish them. There are three types of users:

  1. Root: The superuser with full access to the system.
  2. System users: These users are created by the system for specific services (like www-data for web servers) and do not usually log in.
  3. Regular users: These are everyday users who interact with the system via the terminal or graphical interface.

Groups

A group is a collection of users with common permissions. Each user can belong to one or more groups. Groups help manage permissions for accessing files, executing commands, or utilizing services.

Every user in Linux has:

  • A primary group, which is typically created when the user is added to the system.
  • Secondary groups, which users can be added to, allowing them to share access to files and services with other users.

3. Creating Users

In Ubuntu, user management commands are executed using the terminal. The adduser and useradd commands are used to create new user accounts.

The adduser command is a more user-friendly tool than useradd. It creates a user account and handles default configurations like creating a home directory.

To create a new user, use the following command:

sudo adduser username

You'll be prompted to provide some information:

  • Password: Enter and confirm a password for the new user.
  • Full Name, Room Number, etc.: These fields are optional, and you can press Enter to skip them.

Once the user is created, a new home directory is created at /home/username where all the user’s personal files will be stored.

Using useradd (For Advanced Use)

The useradd command is a lower-level command that doesn’t provide the same convenience as adduser. For example, it doesn't create the home directory automatically unless you specify the -m option.

To create a user with useradd:

sudo useradd -m username

You will need to manually set the password:

sudo passwd username

4. Managing User Accounts

Once you've created users, you may need to manage their accounts by modifying information, assigning groups, or adjusting permissions.

Modifying User Information

You can modify user details such as their home directory, shell, or GECOS (user information) with the usermod command. For example, to change the shell for a user:

sudo usermod -s /bin/bash username

This command changes the default shell to bash.

Setting Passwords

Passwords can be set or reset using the passwd command:

sudo passwd username

The system will prompt you to enter and confirm the new password.

Locking and Unlocking Users

If you need to temporarily disable a user’s account, you can lock the account using the following command:

sudo usermod -L username

To unlock the account:

sudo usermod -U username

Locking the account disables the user’s password without deleting the account.

Managing User Groups

You can add or remove a user from specific groups to give them certain privileges. To add a user to a group:

sudo usermod -aG groupname username

For example, to add a user to the sudo group (which gives the user administrative privileges):

sudo usermod -aG sudo username

To see the groups a user belongs to, run:

groups username

5. Deleting Users

If a user no longer needs access to the system, you can delete their account. The deluser command is used to remove a user from the system.

To delete a user:

sudo deluser username

If you want to delete the user along with their home directory and all of their files, use the --remove-home option:

sudo deluser --remove-home username

Be careful when using this command, as it will permanently delete all the user’s files.

6. User Directories and Default Files

When you create a new user, Ubuntu automatically creates a home directory for the user at /home/username. This directory contains the user’s personal files, including documents, settings, and configuration files.

By default, each new user’s home directory is populated with hidden configuration files (dot files) that are copied from /etc/skel. These files provide default settings for the user's environment, such as .bashrc, which configures the user’s shell.

7. Understanding /etc/passwd and /etc/shadow Files

Two important files in Ubuntu store user information:

/etc/passwd

This file contains basic information about all users, such as the username, UID, GID (Group ID), home directory, and shell. Here’s an example of a line from /etc/passwd:

username:x:1001:1001:Full Name,,,:/home/username:/bin/bash

The fields are:

  • Username: The name of the user.
  • x: A placeholder indicating the password is stored in /etc/shadow.
  • UID: The user’s unique ID.
  • GID: The user’s primary group ID.
  • GECOS: Optional user information.
  • Home directory: The user’s home directory path.
  • Shell: The user’s default shell.

/etc/shadow

This file contains encrypted passwords and account expiration information. Regular users cannot read this file for security reasons. Only the root user can access it.

8. Advanced User Management with usermod

The usermod command allows for more advanced user management. Here are some useful options:

Change the user's primary group:

sudo usermod -g newgroup username

Set an expiration date for the account:

sudo usermod -e YYYY-MM-DD username

Change the login username:

sudo usermod -l newusername oldusername

Change the home directory:

sudo usermod -d /new/home/dir username

9. Best Practices for User Management

  1. Disable root login: Always avoid logging in as the root user. Instead, use sudo for administrative tasks.
  2. Use groups: Assign users to groups based on their roles or access needs. This helps organize permissions.
  3. Limit administrative privileges: Only add users to the sudo group if they require administrative access.
  4. Enforce strong passwords: Encourage or enforce strong passwords for all users.
  5. Regularly audit user accounts: Periodically review and remove inactive or unnecessary accounts.

Conclusion

Managing users on Ubuntu is a fundamental aspect of system administration, ensuring that users have the appropriate permissions and access to system resources. By using tools like adduser, usermod, and deluser, administrators can create, modify, and remove user accounts with ease.

User management is not just about adding or removing users; it's also about maintaining security and ensuring that users have the appropriate level of access. Proper user and group management helps maintain a secure and organized system, especially in environments with multiple users.

Understanding these basic and advanced concepts will enable you to better control who has access to your system and how they interact with it. By mastering user management in Ubuntu, you’re well on your way to efficient system administration.

Read next

Playing God of War on Linux

Black Friday brought new games to my Steam library, and one of them was God of War. I’m not much of a gamer—I'm more interested in how games run on Linux. Here’s my full guide on installing, configuring, and playing God of War on Linux with Proton.

Automating Docker Installation on Multiple Linux Distributions

This blog post introduces a powerful Bash script that automates the entire Docker installation and configuration process. It works seamlessly across Ubuntu, CentOS, and Fedora. Let’s dive deep into the script and understand each step to see how it achieves this.

Ultimate Step‑by‑Step Guide to GameMode

A deep, practical guide to installing, configuring, and supercharging GameMode on Ubuntu for smoother, faster gaming. From GPU drivers to per-game tweaks, this post walks you through squeezing every last drop of performance out of Steam and Proton.