簡體   English   中英

如何從dotnetcore用sudo運行Linux命令?

[英]How can run Linux command with sudo from dotnetcore?

我正在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等代碼一起使用時,我運行了該程序,但該程序顯示控制台讓我輸入root密碼。 那么如何在不直接在控制台上輸入密碼的情況下執行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

您可以以root用戶身份運行程序,也可以僅將用戶添加到sudo組。 或打開sudoers文件: sudo visudo並通過添加username ALL = NOPASSWD : ALL添加用戶所有特權username ALL = NOPASSWD : ALL

如果要使用“ sudo”,則運行程序的用戶應該在sudoers組中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM