Mon*_*Mon 5 c# mono debian processstartinfo
我在Debian中有一个需要root特权的程序,而myuser必须运行它,但是我必须从以单声道运行的.NET应用程序(C#)进行调用。在/ etc / sudoers中,添加以下行:
myuser ALL = NOPASSWD: /myprogram
Run Code Online (Sandbox Code Playgroud)
因此sudo ./myprogram适用于myuser。
在。我在代码中使用的.NET
string fileName = "/myprogram";
ProcessStartInfo info = new ProcessStartInfo (fileName);
...
Run Code Online (Sandbox Code Playgroud)
如何调用“ sudo fileName”?到那时还行不通...谢谢你,莫妮克。
以下内容在类似的情况下为我工作,并演示了传递多个参数的情况:
var psi = new ProcessStartInfo
{
FileName = "/bin/bash",
UseShellExecute = false,
RedirectStandardOutput = true,
Arguments = string.Format("-c \"sudo {0} {1} {2}\"", "/path/to/script", "arg1", arg2)
};
using (var p = Process.Start(psi))
{
if (p != null)
{
var strOutput = p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
}
Run Code Online (Sandbox Code Playgroud)
您只需将程序作为参数传递给 sudo 命令,如下所示:
ProcessStartInfo info = new ProcessStartInfo("sudo", "/myprogram");
Process.Start(info);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4078 次 |
| 最近记录: |