![如何通过 polkitd 实现 Linux 提权,无需密码,但有 Yes/No 提示?](https://linux22.com/image/162180/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20polkitd%20%E5%AE%9E%E7%8E%B0%20Linux%20%E6%8F%90%E6%9D%83%EF%BC%8C%E6%97%A0%E9%9C%80%E5%AF%86%E7%A0%81%EF%BC%8C%E4%BD%86%E6%9C%89%20Yes%2FNo%20%E6%8F%90%E7%A4%BA%EF%BC%9F.png)
我想使用 polkit(d) 实现类似 Window 的 UAC 访问控制。因此,如果我打开网络管理器或打印机,它应该询问我是/否。没有密码提示,但必须向用户显示窗口。
我尝试通过将密码设置为“ignore
我只需点击ok
并授予权限而无需密码”来在 pam 中进行设置。
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth optional pam_permit.so
auth required pam_env.so
但还是有密码提示。
答案1
您必须为此编写自己的 PAM 模块,以生成正确的问题文本并正确解释答案。
通过操作结果代码,pam_unix.so
您可以使任何密码都可以接受,这样您就可以点击“确定”;但点击“取消”后会停止操作,还是无论用户如何回答都会发生?
类似UAC的设计中重要的是提示必须发生很少足够用户实际上会停下来想一想。如果提示出现太频繁,就会变成脊椎反射:“猴子看到对话框,猴子点击确定”。如果某些事情要求您“过于频繁”地输入密码,那么对于类似 UAC 的提示来说,它也可能“过于频繁”。
传统上,类 Unix 系统通常假设用户言出必行:敏感事物上的额外密码提示主要是为了确保安全敏感命令实际上是由授权用户输入的,而不是由发现解锁的随机路人输入的。桌面会话。