How to Run Sudo Command Without Password (original) (raw)
The sudo
command allows trusted users to run programs as another user, by default the root user. If you spend a lot of time on the command line, sudo
is one of the commands you will use on a frequent basis.
Usually, to grant sudo access to a user you need to add the user to the sudo group defined in the sudoers file. On Debian, Ubuntu and their derivatives, members of the group sudo
are granted with sudo privileges while on RedHat based distributions like CentOS and Fedora, the name of the sudo group is wheel
.
Each member of this group will be prompted to enter the password before running a sudo command. This adds an extra layer of security and it is the preferred way to grant sudo privileges to the users.
However, in some situations, like running automated scripts, you may need to configure the sudoers file and allow certain users to run sudo
commands without being asked for the password.
Adding User to the Sudoers File
The sudoers file contains information that determines a user’s and group’s sudo privileges.
You can configure the user sudo access by modifying the sudoers file or by adding a configuration file to the /etc/sudoers.d
directory. The files created inside this directory will be included in the sudoers file.
Before making any changes, it is a good idea to back up the current file:
sudo cp /etc/sudoers{,.backup_$(date +%Y%m%d)}
The datecommand will append the current date to the backup file name.
Open the /etc/sudoers
file with the visudo
command:
sudo visudo
When making changes to the sudoers file always use visudo
. This command checks the file after editing, and if there is a syntax error it will not save the changes. If you open the file with a text editor, a syntax error will result in losing the sudo access.
On most systems, the visudo
command opens the /etc/sudoers
file with the vim text editor. If you don’t have experience with vim you can use another text editor. For example, to change the editor to GNU nanoyou would run:
sudo EDITOR=nano visudo
Scroll down to the end of the file and add the following line that will allow the user “linuxize” to run any command with sudo
without being asked for a password:
/etc/sudoers
linuxize ALL=(ALL) NOPASSWD:ALL
Do not forget to change “linuxize” with the username you want to grant access to.
If you want to allow the user to run only specific commands without entering password specify the commands after the NOPASSWD
keyword.
For example, to allow only the mkdirand mvcommands you would use:
/etc/sudoers
linuxize ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv
Once done, save the file and exit the editor.
Using /etc/sudoers.d
Instead of editing the sudoers file you can create a new file with the authorization rules in the /etc/sudoers.d
directory. This approach makes the management of the sudo privileges more maintainable.
Open your text editor and create the file:
sudo nano /etc/sudoers.d/linuxize
You can name the file as you want, but usually, it is a good idea to use the user name as the name of the file.
/etc/sudoers.d/linuxize
Add the same rule as you would add to the sudoers file:
linuxize ALL=(ALL) NOPASSWD:ALL
Finally, save the file and close the editor.
Conclusion
We have shown you how to edit the /etc/sudoers
so you can run sudo
commands without entering a password. This is useful when you have scripts where a non-root user needs to execute administrative tasks.
If you have any questions, feel free to leave a comment.
If you like our content, please consider buying us a coffee.
Thank you for your support!
Sign up to our newsletter and get our latest tutorials and news straight to your mailbox.