Have you ever gotten annoyed when executing a specific command that requires sudo to ask for a password?
If you are a root user, you don’t have to type the password while executing any system-level command. However, regular users with sudo privileges must repeatedly type the same password while running the sudo command per session.
Let’s take an
apt command that requires sudo privileges and asks for the password. This can all be avoided using the below-mentioned method.
Run Particular Command without Sudo Password
We must add a new entry in the sudoers file to avoid typing passwords for each command requiring sudo privileges.
For that, execute the below command to open the sudoers file.
$ sudo visudo #Recommended
In some Linux distributions, the
visudo command is not provided. In such cases, open the sudoers file using the below command.
$ sudo nano /etc/sudoers #Not Recommended
Below is the behavior of any of the above commands.
After executing the above command, open another terminal and take the command requiring sudo privileges, which you want to avoid typing the password.
In my case, it is an
apt command; for that, I have to find the absolute path of the command using the
whereis command, as shown below.
$ type apt
Below is the behavior of the above command.
As you can see above, the absolute path of the
apt command is the
/usr/bin/apt path. You can replace the command with something else and note down the path, then go back to the previous terminal window and add the below command at the end of the sudoers file.
ubuntushell ALL=(ALL) NOPASSWD: /usr/bin/apt
Make sure to replace “ubuntushell” with your username and replace the
/usr/bin/apt path with your own command path. Then add this line of code at the end of the sudoers file, as shown below.
Save and re-execute the same command. In my case, the
apt command with sudo privileges will not ask for the password again, as shown below.
Run Multiple Commands without a Sudo Password
Want to add more commands to avoid typing sudo passwords? Then add the absolute path of all commands, separated by commas, as shown below.
username ALL=(ALL) NOPASSWD: /usr/bin/apt, /usr/bin/systemctl
As you can see above, I have added the systemctl command, which requires sudo privileges separated by commas. However, you can add as many as you want.
Run All Commands without Sudo Password [Not Recommended]
I think you definitely got bored typing passwords. You can execute all the commands requiring sudo privileges without a password (not recommended).
For that, remove all the absolute paths of command after NOPASSWD and replace them with ALL, as shown below.
username ALL=(ALL) NOPASSWD: ALL
After adding the line in the sudoers file, any command requiring sudo privileges will not ask for the password.
If you want to revert and allow them to authenticate, remove that line of code using the same method.
All though we do not encourage you to allow all sudo required commands to run without a password, except if it is your personal computer.