[Share Experiences] 以root权限运行命令配置无需输入密码(sudo和pkexec)
Tofloor
poster avatar
Maicss
deepin
2021-12-19 04:27
Author

一般来说,想要以root权限运行命令可以借助sudo 和 pkexec

要想省略输入密码的步骤,需要分别配置他们。

sudo可针对用户进行统一管理,而pkexec可以针对每一个命令配置,并且pkexec是支持图形界面授权的。

配置sudo

可以通过命令sudo visudo来编辑sudo的配置文件。

在该文件末尾添加如下行:

maicss ALL=(ALL:ALL) NOPASSWD:ALL

一定要在末尾(%sudo那一行的后边),否则无效。

保存后maicss用户在使用sudo时就不会要求输入密码了。

配置pkexec

pkexec的策略文件存储于:/usr/share/polkit-1/actions/中,要实现修改某程序的策略,需要为其添加策略文件(可以复制一个其他程序的然后进行修改)。

设置提示信息

(这里我是在Fedora下操作的,使用了dnf命令作为例子,大家可以根据需要配置修改。)

如要设置dnf命令的提示信息,要新增一个配置文件,名为:org.maicss.dnf.policy原则上这个名字需要和对应的程序ID相同,但是我们可以随便起一个,后缀名为 .policy 是固定的。




    Dnf Package Manager
    x-package-repository
    
        要使用包管理器需要root权限
        要使用dnf命令进行包管理需要获得root权限
        
            auth_admin
            auth_admin
            auth_admin
        
        /usr/bin/dnf
        true
    

其中一些重要信息说明:

  • 5行:设置该配置的名称,可以随便写。
  • 6行:图标名称,可能会在图形界面弹窗要求输入密码时显示。
  • 7行:这行要写ID,需要和文件名保持一致(不包括后缀名)。
  • 8行:说明,可以随便写。
  • 9行:消息,会在图形界面弹窗要求输入密码时显示。
  • 15行:可执行程序的路径,如果是命令,可以使用 whereis 命令获得其路径。
  • 16行:是否允许 GUI 打开 X 显示器。

设置无需密码

设置无需密码需要修改下面代码中的11-13行内容为yes,如下所示:




    Dnf Package Manager
    x-package-repository
    
        要使用包管理器需要root权限
        要使用dnf命令进行包管理需要获得root权限
        
            yes
            yes
            yes
        
        /usr/bin/dnf
        true
    

这时使用命令 pkexec dnf update 将不再弹出任何输入密码的提示,直接就可以运行。

Reply Favorite View the author
All Replies
Maicss
deepin
2021-12-19 04:33
#1

这个代码框竟然不显示行号,不过好在不多😂

Reply View the author
jjcui8595
deepin
2021-12-19 05:21
#2

收藏了

Reply View the author
pzm9012
Moderator
2021-12-19 06:26
#3

感谢分享

Reply View the author
sammy-621
deepin
2021-12-19 08:33
#4
It has been deleted!