如何防止 PolicyKit 要求输入密码?

如何防止 PolicyKit 要求输入密码?

多年来,我的sudoers档案里一直有以下内容:

scott   ALL=NOPASSWD: ALL

对于那些不知道的人来说,这可以防止sudo朋友(gksudo等)询问密码。然而,多年来,越来越多曾经使用过的东西sudo已经转向使用 PolicyKit。

我正在寻找 PolicyKit 的等效配置,这样它就永远不会要求我输入密码。

对于那些不喜欢我的请求的人,我要说的是:我理解默认配置的原因,而且这些理由很合理。我也理解我想要进行的配置所固有的风险。尽管如此,这是我想要设置系统的方式。那些不完全理解上述内容的人不应该尝试我正在尝试的事情。

答案1

你可以使用与 Ubuntu Live CD 相同的技术通过欺骗 PolicyKit 并使用通配符替换操作来抑制所有密码提示。

免责声明:以下内容将全局禁止所有属于管理员组的用户的密码提示,但登录屏幕除外。这是极其危险的,绝不应该实施,因为您很有可能最终会破坏您的系统!!

别说你没有受到警告!

注意:如果您运行的是 12.04 或更高版本,请将“admin”替换为“sudo”!

将“用户名”替换为您的实际用户名:

usermod -aG admin username

切换到根目录:

sudo -i

创建新策略:

gedit /var/lib/polkit-1/localauthority/50-local.d/disable-passwords.pkla

添加以下内容:

[Do anything you want]
Identity=unix-group:admin
Action=*
ResultActive=yes

保存并退出。然后去尝试一些通常需要密码的事情。:)

注意:.pkla 文件名可以随意命名。您可以随意命名。

最后,这是抑制密码提示时您需要的唯一策略,因为它在全球范围内都是如此。

答案2

您可以创建一个 .pkla,可以是全部内容,也可以是基于操作组的几个内容,这并不重要。

请参阅 /usr/share/polkit-1/actions,在文本编辑器中打开感兴趣的内容以获取操作 ID。

至于 .pkla 或 2 个,我发现最好的存放位置是这里,这样可以防止任何更新

/var/lib/polkit-1/localauthority/50-local.d

例如,这是我的主要包,名为 package-manager.pkla,但它的范围比包管理策略要广一些。

[Install package file]
Identity=unix-group:admin
Action=org.debian.apt.install-file;org.debian.apt.update-cache;org.debian.apt.install-or-remove-packages;org.debian.apt.upgrade-packages
ResultActive=yes

[Install package synaptic]
Identity=unix-group:admin
Action=com.ubuntu.pkexec.synaptic
ResultActive=yes

[Change add repo]
Identity=unix-group:admin
Action=com.ubuntu.softwareproperties.applychanges;org.debian.apt.change-repository
ResultActive=yes

[usbcreator format]
Identity=unix-group:admin
Action=com.ubuntu.usbcreator.format
ResultActive=yes

[Install bootloader]
Identity=unix-group:admin
Action=com.ubuntu.usbcreator.bootloader
ResultActive=yes

[Add users]
Identity=unix-group:admin
Action=org.freedesktop.accounts.user-administration
ResultActive=yes

请注意,从12.04用于“admin”用户组应该更改为 sudo,即。

Identity=unix-group:sudo

还要注意的是,每个部分的操作可以串联在一起,没有空格,在 id 之间使用 ;

相关内容