The sudo
command¶
The sudo
("substitute user do" or "super user do") command allows a user with proper permissions to execute a command as another user, such as the superuser.
This is the equivalent of "run as administrator" option in Windows. The sudo
command allows you to elevate your current user account to have root privileges. Also, the root privilege in sudo
is only valid for a temporary amount of time. Once that time expires, you have to enter your password again to regain root privilege.
WARNING: Be very careful when using the
sudo
command. You can cause irreversible and catastrophic changes while acting as root!
Syntax:¶
sudo [-OPTION] command
Additional Flags and their Functionalities:¶
Flag | Description |
---|---|
-V | The -V (version) option causes sudo to print the version number and exit. If the invoking user is already root, the -V option prints out a list of the defaults sudo was compiled with and the machine's local network addresses |
-l | The -l (list) option prints out the commands allowed (and forbidden) the user on the current host. |
-L | The -L (list defaults) option lists out the parameters set in a Defaults line with a short description for each. This option is useful in conjunction with grep. |
-h | The -h (help) option causes sudo to print a usage message and exit. |
-v | If given the -v (validate) option, sudo updates the user's timestamp, prompting for the user's password if necessary. This extends the sudo timeout for another 5 minutes (or whatever the timeout is set to in sudoers) but does not run a command. |
-K | The -K (sure kill) option to sudo removes the user's timestamp entirely. Likewise, this option does not require a password. |
-u | The -u (user) option causes sudo to run the specified command as a user other than root. To specify a uid instead of a username, use #uid. |
-s | The -s (shell) option runs the shell specified by the SHELL environment variable if it's set or the shell as specified in the file passwd. |
-- | The – flag indicates that sudo should stop processing command line arguments. It is most useful in conjunction with the -s flag. |
Examples¶
This command switches your command prompt to the BASH shell as a root user:
sudo bash
Your command line should change to:
root@hostname:/home/[username]
Adding a string of text to a file is often used to add the name of a software repository to the sources file, without opening the file for editing. Use the following syntax with echo, sudo and tee command:
echo ‘string-of-text’ | sudo tee -a [path_to_file]
Example:
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list