Difference Between sudo and su Commands in Linux
su are commands used in Linux and other Unix-based systems to switch to a different user account with elevated privileges. However, there are some differences between the two commands, as explained below.
sudo command (short for “superuser do”) is a Linux/Unix command that allows a user with administrative privileges to execute a command as the root or super user. To use sudo, you need to have the appropriate permissions, your user account or group should be defined in the
sudoers configuration file, located at
By default, only an administrative user created while installing the operating system can use
sudo, but you can add other users to the
sudoers file to grant them the necessary permissions to use sudo.
When you prefix a command with
sudo, you are requesting the command to be executed with elevated privileges of the root user. This is useful when you need to perform a task that requires administrative rights, such as installing or updating software, modifying system files or directories, or changing system settings. All these and more are actions that can only be performed by the root user.
sudo Usage Examples
For example, to update the package list on a Debian-based Linux distribution such as Ubuntu, using the
apt package manager, with elevated privileges, run the following command. You will be asked to enter your account password:
$sudo apt-get update OR $sudo apt update
Then you can install a package as follows. This example shows how to install the vim command-line editor:
$sudo apt-get install vim OR $sudo apt install vim
Here is another example to create a subdirectory called
myapp in the directory
/var/www/, owned by the root user. Then open the file
index.html for editing using the Vim editor:
$sudo mkdir /var/www/myapp $sudo vim /var/www/myapp/index.html
Note: It’s important to use
sudo with caution, as executing commands with elevated privileges can be dangerous. Always double-check the command you’re about to run and make sure you understand what it does before using
su (short for “substitute user” or “switch user”) allows you to switch to any user account, including the root user account, by providing the correct password. Once you have switched to the new user account, you have access to all the privileges associated with that account.
su Usage Examples
If run without any options and arguments, su will switch to the root account. You will be prompted to provide the root account password:
You can also use sudo command with su, as follows. In this case, you will be asked to provide your account password:
To switch to a different user account, provide the username. You will be prompted to provide the user’s account password:
$su fossman OR $su - fossman
su is used to switch to another user account with all its associated privileges, while
sudo is used to execute a specific command as another user, typically the root user, without having to switch to that user account. For more information, see the man page for each command by running
man sudo or