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


24

多年来,我的sudoers文件中包含以下内容:

scott   ALL=NOPASSWD: ALL

对于那些不知道的人,这可以防止sudo和朋友(gksudo,等等)要求输入密码。但是,多年来,越来越多的曾经使用sudo过的东西已切换为使用PolicyKit。

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

对于那些不喜欢我的请求的人,让我这样说:我了解默认配置的原因,而且很合理。我也了解我要进行的配置固有的风险。但是,这是我要设置系统的方式。那些不完全了解以上内容的人不应该尝试我所尝试的。

Answers:


15

您可以通过用通配符代替操作来欺骗PolicyKit并禁止显示所有密码提示。

免责声明:以下内容将全局抑制所有属于admin组的用户的所有密码提示,登录屏幕除外。这是非常危险的,永远不要实施,因为您可能会破坏系统!

别说你没有被警告!

注意:如果您正在运行12.04或更高版本,请用“ sudo”替换“ admin”!

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

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文件名并不重要。您可以根据需要命名。

最后,这是抑制密码提示时唯一需要的策略,因为它再次在全局范围内执行。


当您将admin组替换为时,这在Fedora上也适用wheel。谢谢!
肯尼·拉沙特

3
有人可以描述这将如何“破坏”系统吗?
Mehrdad 2014年

3
是的,请。这将如何破坏系统?不是这个!在此之后您所做的愚蠢操作将破坏系统,但不会破坏系统!这将使您无需密码即可在主机上执行任何操作。如果您做一些愚蠢的事情,就会破坏系统。如果您必须输入密码并且做一些愚蠢的事情,则会破坏系统。从本质上讲,这会使做一些愚蠢的事情变得容易一些。
dangonfast 2015年

1
@ jeckyll2hide阅读说明-它解释了OP选择的原因[Install package file]。您不同意此说明,并且NOTE需要进行类似的编辑,或者您的编辑无效并且应回滚。
bcbc

1
您可以使用@prusswan Identity=unix-user:scott仅允许用户“斯科特”执行操作。另外,如果只想允许某些操作,则可以grep /var/log/auth.log,当提示您输入密码时,polkitd将输出您尝试使用的polkit的全名。 cat /var/log/auth.log | grep polkitd将为您提供一个非常快速的列表
斯科特(Scott)

8

您可以创建一个.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之间


看来您正在分别为每个程序进行设置。这似乎很乏味,尤其是如果我稍后安装其他想要使用PolicyKit的程序时。我正在寻找一种进行全局配置更改的方法,该更改会影响所有方面。
Scott Severance,2012年

1
从未见过任何影响“全球”的方法,不相信那是policykit的工作方式,每个操作id都有一个策略集
doug

0

如果您知道自己在做什么,一种选择是完全禁用策略工具包。

sudo apt-get remove libpolkit-agent-1-0


1
它消除了太多重要的包,喜欢network-managergnome-control-center等等。还有其他更细粒度的方法吗?
捕手
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.