有各种用于各种桌面的工具,目的是以根用户的身份运行图形应用程序。gksudo,kdesudo,empower等.
但是,如果我正在编写一个可以在任何Linux桌面上使用的脚本呢?有某种xdg-sudo吗..?在桌面环境中获得sudo访问的标准?
发布于 2013-05-02 12:15:23
按照@Tachyons的建议,我对pkexec进行了大量的研究,这是非常棒的!
所以是的,它满足了所有的要求,我想这是“通用的gksudo”最接近的东西。
也就是说,pkexec是PolicyKit的命令行前端.有两种基本的运作方式:
sudo一样运行它,就可以得到一个很好的GUI提示:$ pkexec rm -rfX /
/usr/share/polkit-1/rules.d中,它将允许大量定制和与安全相关的选项,例如只对某些操作进行根访问,对其他操作不需要密码,访问仅限于某些路径等。您可以以惊人的粒度微调您的设置。发布于 2013-02-09 01:58:15
一个更普遍的方法是编写一个“助手程序”。这样的程序会提示用户输入密码;如果您确信安装了Zenity,您可以使用它,否则您需要用Python或其他可以与GUI交互的工具编写助手程序。
阅读sudo手册中的-A ("askpass")和-S (stdin)选项。
请记住,当您从脚本运行sudo时,您需要使用-H (home)选项来模拟gksudo。
此方法工作良好,但您需要彻底测试帮助程序,以确保它没有错误。
发布于 2013-02-09 01:34:52
不,没有任何获取根(或任何其他用户)权限的标准方法。
如果您希望与尽可能多的系统兼容,请不要假设任何方式,而是告诉用户她/他必须以特定用户的身份运行您的脚本。然后由用户/管理员来配置系统,以便您的脚本以正确的方式运行。
就如何使用最常见的身份验证系统(如su、sudo和ConsoleKit )提出一些建议会很好。
https://askubuntu.com/questions/252962
复制相似问题