我有一个用于 Linux 的 UI 应用程序(使用 GTK),需要以 root 身份运行(它读取和写入 /dev/sd*)。
与其要求用户在每次启动我的应用程序时手动打开 root shell 或使用“sudo”,我想知道该应用程序是否可以使用一些操作系统提供的 API 来获取 root 权限。(注意:gtk 应用程序不能使用“setuid”模式,所以这里不是一个选项。)
这里的优点是工作流程更简单:用户可以从他的默认用户帐户中,从桌面双击我的应用程序,而不必打开根终端并从那里启动它。
我问这个是因为 OS X 正好提供了这个:应用程序可以要求操作系统启动具有 root 权限的可执行文件 - 操作系统(而不是应用程序)然后要求用户输入他的凭据,验证它们,然后根据需要启动目标.
我想知道 Linux 是否有类似的东西(例如 Ubuntu)
澄清:
因此,在 PolicyKit 的提示之后,我想知道是否可以使用它来获得对“/dev/sd ...”块设备的读写访问权限。我发现文档很难理解,所以我想我首先要问这是否可能,然后再花几个小时试图徒劳地理解它。
更新:
该应用程序是为不精通 Linux 用户的远程操作磁盘修复工具,那些 Linux 菜鸟不会对使用 sudo 甚至更改其用户的组成员有太多了解,特别是如果他们的磁盘刚刚开始出现故障并且他们吓坏了. 这就是为什么我寻求一种避免此类技术问题的解决方案。