我有一个Linux应用程序(使用GTK),需要以root用户身份运行(它读取和写入/ dev/sd *)。认证GTK应用程序以root权限运行
,而不需要用户打开一个root shell,或当他启动我的应用程序中使用“命令”手动每一次的,我不知道是否该应用程序可以使用一些操作系统提供的API来获得root权限。 (注意:gtk应用程序不能使用“setuid”模式,所以这不是一个选项。)
这里的优势是更简单的工作流程:用户可以从他的默认用户帐户双击我的应用程序桌面,而不必打开根终端并从那里启动它。
我问这个问题是因为OS X提供了这个:一个应用程序可以要求操作系统启动一个带有根权限的可执行文件 - 操作系统(而不是应用程序)然后要求用户输入他的凭证,验证它们然后启动目标根据需要。
我不知道是否有类似的针对Linux(Ubuntu的,如)东西
澄清:
所以,在PolicyKit的提示我不知道如果我可以用它来获得R/W后访问“/ dev/sd ...”块设备。我发现这些文档很难理解,所以我想我会先花一点时间试着去理解它,然后再问这是否可能。
更新:
该应用程序是为unsavvy的Linux用户远程操作的磁盘修复工具,以及那些Linux的菜鸟不会有使用sudo,甚至改变他们的用户的组成员太多了解,特别是如果他们的磁盘刚刚开始动作,他们就会吓坏了。这就是为什么我寻求避免这种技术问题的解决方案。
确实有可能像这样设置 - 例如,新立得软件包管理器通常是这样设置的。 – caf 2010-03-08 12:11:17
我不确定你应该真的想以root身份运行。如果您只需要访问磁盘,最好将用户添加到“磁盘”组。 – 2010-03-08 23:25:40
米兰 - 我的应用程序充当一次性磁盘修复工具。我不认为任何想使用它的人都愿意永久性地改变他的系统范围的设置。 – 2010-03-08 23:30:23