如何通过 ProcessStartInformation 使用 sudo 启动进程
本文关键字:启动 进程 sudo 使用 何通过 ProcessStartInformation | 更新日期: 2023-09-27 17:56:03
我在 Debian 中有一个程序需要 root 权限,myuser 必须运行它,但我必须从以单声道运行的 .NET 应用程序 (C#) 进行调用。在/etc/sudoers 中,我添加了以下行:
myuser ALL = NOPASSWD: /myprogram
所以sudo ./myprogram
适用于我的用户。
在。我在代码中使用的网络
string fileName = "/myprogram";
ProcessStartInfo info = new ProcessStartInfo (fileName);
...
如何调用"sudo 文件名"?到那时它不起作用...谢谢你,莫妮克。
以下内容在类似情况下对我有用,并演示了传入多个参数:
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();
}
}
你只需要将程序作为参数传递给sudo命令,如下所示:
ProcessStartInfo info = new ProcessStartInfo("sudo", "/myprogram");
Process.Start(info);