例如,当你忘记在“systemctl ...”之前输入 sudo 而不是弹出 gui 界面时,我希望终端中出现 curses 提示符。类似于 pinentry,但适用于 sudo。
答案1
是也不是,但大多情况下不是,因为这实际上不是 sudo。
当。。。的时候波基特守护进程正在验证管理员凭据,它通过后台通道调用密码提示 - systemctl 不会直接显示 GUI,但它是向 polkitd 注册的桌面环境的一部分,以等待任何未来的密码提示。
虽然这个提示可能是 ncurses 的东西(实际上 systemctl有内置的基于终端的提示器并始终在这种情况下运行它),通常整个会话只能有一个。只要您的桌面环境已经注册了其图形提示器,systemctl 临时运行的后备基于终端的提示器就永远不会被使用。
(PolicyKit 不像 sudo 或 UAC - systemctl 不会变得更有特权或类似的东西;它只是调用请求的操作和服务决定“稍等,此操作需要管理员身份验证”。优点是,程序本身不需要 sudo,这在 GUI 应用程序中曾经很麻烦。)