问题描述
多年来,我的 sudoers
文件中有以下内容:
scott ALL=NOPASSWD: ALL
对于那些不知道的人,这可以防止 sudo
和朋友( gksudo
等)询问密码。然而,多年来,越来越多曾经使用 sudo
的东西已经切换到使用 PolicyKit。
我正在寻找 PolicyKit 的等效配置,这样它就永远不会询问我的密码。
对于那些不喜欢我的要求的人,让我这样说:我理解默认配置的原因,并且它们是合理的。我也了解我想要进行的配置中固有的风险。尽管如此,这是我想要设置我的系统的方式。那些不完全理解以上内容的人不应该尝试我正在尝试的东西。
最佳答案
您可以通过欺骗 PolicyKit 并通过用通配符替换操作来抑制所有密码提示来 use the same technique Ubuntu’s Live CD uses。
免责声明:以下内容将在全局范围内禁止属于 admin 组的每个人的所有密码提示,登录屏幕除外。这是非常危险的,永远不应该实施,因为你最终会破坏你的系统!!
不要说你没有被警告!
注意:如果您运行的是 12.04 或更高版本,请将 “admin” 替换为 “sudo”!
将 “username” 替换为您的实际用户名:
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 文件名并不重要。你可以随意命名它。
最后,这是您在禁止密码提示时需要的唯一策略,因为它再次在全球范围内这样做。
次佳答案
您可以创建一个 .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
另请注意,每个部分可以将动作串在一起,没有空格,使用 a ;在 id 之间