Ubuntu: How to create a user with sudo privileges

Updated: January 28, 2024 By: Guest Contributor Post a comment

When working with Ubuntu, one of the fundamental tasks you’ll undertake is managing users and their privileges. Specifically, it’s often necessary to create a user with sudo privileges for tasks that require superuser access. This tutorial will guide you through creating a user with sudo privileges in Ubuntu, providing step-by-step instructions and code examples.

Understanding Sudo Privileges

The sudo command in Ubuntu allows permitted users to run commands as the superuser or another user, as specified in the /etc/sudoers file. Before we create a user with sudo privileges, it’s important to understand that with great power comes great responsibility. Users granted with sudo access can execute commands that affect the core system, hence they should be trusted with understanding these implications.

Creating a New User in Ubuntu

To begin, let’s create a new user. You’ll need to be logged in with a user that has sudo privileges to do this.

sudo adduser newusername

You will be prompted to enter and confirm a new password for the user, as well as additional information such as the full name, room number, etc. This can be left blank by pressing ENTER if it’s not required.

Adding A User to sudo Group

On Ubuntu, members of the ‘sudo’ group are granted with sudo privileges. Thus, to give your new user sudo access, you need to add them to the ‘sudo’ group:

sudo usermod -aG sudo newusername

The -a flag appends the user to the group, and -G specifies the group name. Substitute ‘newusername’ with the intended username.

Alternative: Editing the sudoers File

Another way to grant sudo privileges is by editing the /etc/sudoers file. This file defines which users and groups have sudo privileges.

sudo visudo

Locate the line that reads %sudo ALL=(ALL:ALL) ALL and add the following line underneath, replacing ‘newusername’ with your created username to grant them full sudo access:

newusername   ALL=(ALL:ALL) ALL

Be cautious when editing this file; an improper configuration can result in the loss of sudo access for all users. After saving and closing the file, your new user should have sudo privileges.

Testing sudo Privileges

To confirm that your new user has sudo access, switch to the new account and attempt to run a privileged command:

su - newusername
sudo whoami

If you see ‘root’ as output, then the user has successfully executed a command with sudo privileges. If there’s an error, retrace your steps or check the /etc/sudoers file for mistakes.

Customizing sudo Access

You may want to provide a user with limited sudo privileges, granting access to only certain commands. This can be achieved by adding specific lines in the sudoers file. For example, if you want the new user to only be able to manage the Apache server, you can add:

newusername   ALL= /etc/init.d/apache2 restart, /etc/init.d/apache2 stop, /etc/init.d/apache2 start

This line specifies that ‘newusername’ has sudo privileges solely for the starting, stopping, and restarting of the Apache server.

Advanced: Securing sudo Access

To further secure sudo access, you can enforce password policies, configure sudo to require a password each time, or even enable two-factor authentication (2FA). Using tools like ‘Google Authenticator’ for 2FA can add an additional layer of security.

For critical environments, every action performed using sudo can be logged for auditing purposes. Storing logs in a secure, central location can help analyze and anticipate any unauthorized attempts at using sudo privileges.

Conclusion

Creating a user with sudo privileges is a straightforward task in Ubuntu, but it requires careful attention to detail to ensure system security. By following these steps and using sudo responsibly, you can perform administrative tasks while minimizing security risks to your system.