在mono上以编程方式提升权限

时间:2014-03-21 14:51:44

标签: c# linux mono impersonation elevated-privileges

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

此解决方案在一种情况下运行良好 - 安装了gksudo

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

实际上我相信我需要一种PAM-ify我的应用程序。

该解决方案不一定符合Windows标准,但这将是一个不错的奖励。

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

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

这激发了我尝试新方法的灵感。我试过了

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

输出应为otheruser,但不是。

请注意我将域名(最后一个参数)留空(可以吗?)并根据this example填写密码。

这个解决方案不是最好的解决方案 - 它要求我提供获取密码的方法,但这是可以接受的,尽管不起作用。

对我来说,最好的选择是让我的环境选择正确接收密码的方式 - 通过Qt / GTK弹出窗口或控制台提示符。

要记住的最后一件事 - 以root身份运行应用程序我很乐意提供一个sudoer密码,不一定是root密码(根据sudoers配置)。

0 个答案:

没有答案