首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有桌面中立的gksudo吗?

有桌面中立的gksudo吗?
EN

Ask Ubuntu用户
提问于 2013-02-09 01:13:40
回答 3查看 6.1K关注 0票数 20

有各种用于各种桌面的工具,目的是以根用户的身份运行图形应用程序。gksudokdesudoempower等.

但是,如果我正在编写一个可以在任何Linux桌面上使用的脚本呢?有某种xdg-sudo吗..?在桌面环境中获得sudo访问的标准?

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2013-05-02 12:15:23

按照@Tachyons的建议,我对pkexec进行了大量的研究,这是非常棒的!

  • 它是PolicyKit的一部分,这是一个广泛使用的软件包。
  • freedesktop.org主持和赞助
  • 默认设置为Gnome、Unity、Cinnamon、KDELXDEXFCE,可能还有其他
  • 通过D总线工作,所以它完全是桌面中立的,有一个定义良好的协议.
  • 在许多DEs中,它是用于多项服务,如登录屏幕、关机/重新启动、磁盘管理(udisk/automount)等等。

所以是的,它满足了所有的要求,我想这是“通用的gksudo”最接近的东西。

也就是说,pkexec是PolicyKit的命令行前端.有两种基本的运作方式:

  • 只需像对sudo一样运行它,就可以得到一个很好的GUI提示:$ pkexec rm -rfX /
  • 或者为您的应用程序创建一个PolicyKit授权文件,将其放到/usr/share/polkit-1/rules.d中,它将允许大量定制和与安全相关的选项,例如只对某些操作进行根访问,对其他操作不需要密码,访问仅限于某些路径等。您可以以惊人的粒度微调您的设置。
票数 18
EN

Ask Ubuntu用户

发布于 2013-02-09 01:58:15

一个更普遍的方法是编写一个“助手程序”。这样的程序会提示用户输入密码;如果您确信安装了Zenity,您可以使用它,否则您需要用Python或其他可以与GUI交互的工具编写助手程序。

阅读sudo手册中的-A ("askpass")和-S (stdin)选项。

请记住,当您从脚本运行sudo时,您需要使用-H (home)选项来模拟gksudo

此方法工作良好,但您需要彻底测试帮助程序,以确保它没有错误。

票数 6
EN

Ask Ubuntu用户

发布于 2013-02-09 01:34:52

不,没有任何获取根(或任何其他用户)权限的标准方法。

如果您希望与尽可能多的系统兼容,请不要假设任何方式,而是告诉用户她/他必须以特定用户的身份运行您的脚本。然后由用户/管理员来配置系统,以便您的脚本以正确的方式运行。

就如何使用最常见的身份验证系统(如su、sudo和ConsoleKit )提出一些建议会很好。

票数 4
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/252962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档