在单声道上以编程方式提升权限

从我的单声道应用程序,在Linux下运行,我想以root用户身份运行另一个。 目前我使用Process.Start ,运行gksudo

这个解决scheme在一个条件下工作得很好 – 安装了gksudo

我需要一种机制来提升单声道程序集的权限(不一定是另一个进程),而不依赖于像gksudokdesu这样的特定的,依赖于桌面的应用程序,而不是基于控制台(比如好的sudo )。

其实我相信我需要一个PAM-ify我的应用程序的方法。

该解决scheme不一定是Windows兼容,但这将是一个很好的奖金。

我已经看到了许多可能的答案,但是没有一个解决了所有的问题。

一个非常好的方法是https://stackoverflow.com/a/16276287/882200 ,但它需要一个程序集作为根运行,这是不可能的。

这启发了我尝试一种新的方法。 我试过跑步

 Process.Start("whoami", "otheruser", password, ""); 

输出应该是otheruser ,但不是。

请注意,我离开域(最后一个参数)是空的(是OK?),我填写密码,根据这个例子 。

这个解决scheme并不是最好的 – 它要求我提供手段来获取密码,但这是可以接受的,虽然不能工作。

对我来说最好的select是让我的环境select正确的方式来接收密码 – 无论是通过Qt / GTKpopup窗口或控制台提示符。

最后要记住的是 – 以root用户身份运行一个应用我希望能够提供一个sudoer的密码,不一定是一个root密码(根据sudoersconfiguration)。