[Share Experiences] Running Commands with Root Privileges Without Entering a Password
Tofloor
poster avatar
SuperDavid
Moderator
2024-07-24 15:25
Author

[Experience Sharing] Running Commands with Root Privileges Without Entering a Password (sudo and pkexec)

Typically, to run commands with root privileges, you can use sudo and pkexec.

To skip the password entry step, you need to configure them separately.

sudo can manage users uniformly, while pkexec can be configured for each command, and it supports graphical interface authorization.

Configuring sudo

You can edit the sudo configuration file using the command sudo visudo.

Add the following line at the end of the file:

maicss ALL=(ALL:ALL) NOPASSWD:ALL

Make sure to add it at the end (after the %sudo line), otherwise it won't be effective.

After saving, the user maicss will not be prompted for a password when using sudo.

Configuring pkexec

The policy files for pkexec are stored in /usr/share/polkit-1/actions/. To modify the policy for a specific program, you need to add a policy file (you can copy an existing one and modify it).

Setting the Prompt Message

(Here, I am demonstrating on Fedora, using the dnf command as an example. You can configure and modify it according to your needs.)

To set the prompt message for the dnf command, create a new configuration file named org.maicss.dnf.policy. The name should ideally match the corresponding program ID, but you can name it anything, as long as it has a .policy extension.

"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">

Dnf Package Manager

x-package-repository

Root privileges are required to use the package managerRoot privileges are required to use the dnf command for package management

auth_admin

auth_admin

auth_admin

/usr/bin/dnf

true

Explanation of some important lines:

  • Line 5: Set the name of the configuration, can be arbitrary.
  • Line 6: Icon name, which might be displayed in graphical interface prompts.
  • Line 7: The ID, which needs to match the file name (excluding the extension).
  • Line 8: Description, can be arbitrary.
  • Line 9: Message, which will be displayed in graphical prompts.
  • Line 15: Path to the executable program; you can use the whereis command to find the path if it's a command.
  • Line 16: Whether to allow the GUI to open the X display.

Setting No Password Requirement

To set it so that no password is required, modify lines 11-13 in the code above to yes, as shown below:

"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">

Dnf Package Manager

x-package-repository

Root privileges are required to use the package managerRoot privileges are required to use the dnf command for package management

yes

yes

yes

/usr/bin/dnf

true

Now, using the command pkexec dnf update will not prompt for a password and will run directly.

Reply Favorite View the author
All Replies

No replies yet