从我的单声道应用程序,在Linux下运行,我想以root
用户身份运行另一个。 目前我使用Process.Start
,运行gksudo
。
这个解决scheme在一个条件下工作得很好 – 安装了gksudo
。
我需要一种机制来提升单声道程序集的权限(不一定是另一个进程),而不依赖于像gksudo
或kdesu
这样的特定的,依赖于桌面的应用程序,而不是基于控制台(比如好的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密码(根据sudoers
configuration)。