我正在Ubuntu 16.04上开发一个使用dotnetcore执行一些简单命令的小项目。这是我用来运行命令的代码
public void ExecuteCommand(string command)
{
Process proc = new Process();
proc.StartInfo.FileName = "/bin/bash";
proc.StartInfo.Arguments = "-c \" " + command + " \"";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
while (!proc.StandardOutput.EndOfStream)
{
Console.WriteLine(proc.StandardOutput.ReadLine());
}
}
当我试图将sudo命令与上述代码(如
sudo service nginx restart
)一起使用时,我运行了程序,但程序显示了控制台,供我输入根密码。那么,如何在不直接在控制台上输入密码的情况下执行sudo命令呢?我的计算机上的Dotnetcore信息
.NET Command Line Tools (1.0.0-preview2-1-003177)
Product Information:
Version: 1.0.0-preview2-1-003177
Commit SHA-1 hash: a2df9c2576
Runtime Environment:
OS Name: ubuntu
OS Version: 16.04
OS Platform: Linux
RID: ubuntu.16.04-x64
最佳答案
您可以以根用户身份运行程序,也可以将用户添加到sudo组。
或者打开sudoers文件:sudo visudo
并通过添加行添加用户所有权限username ALL = NOPASSWD : ALL
关于linux - 如何从dotnetcore用sudo运行Linux命令?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41096387/