2016-12-12 8 views
0

私はいくつかの簡単なコマンドを実行するために、Ubuntu 16.04でdotnetcoreを使って小さなプロジェクトを開発しています。これは私が上記のコードのようなsudo service nginx restartでsudoコマンドを使用しようとしたとき、私はコマンドdotnetcoreからsudoでLinuxコマンドを実行するにはどうすればいいですか?

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()); 
    } 
} 

を実行するために使用されるコードで、その後、私はプログラムを実行したが、私は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 
+0

あなたのプログラムはrootとして実行できます。次に、再認可せずにルート権限でコマンドを実行できるはずです。それ以外の場合は、パスワードを回避する方法がわかりません。明示的な許可なしにプログラムが自分のマシン上でルートコマンドを実行できる場合、これは大きなセキュリティ上のリスクになります。 –

+1

@AndréStannekはい、できます:http://askubuntu.com/a/147265私はあなたと一緒ですが、これは行わないでください。一方、特定のアプリケーションにsudoを制限することができます。http://askubuntu.com/a/39294 – mistapink

+0

[パスワードなしでsudoコマンドをJavaプログラムから実行するにはどうすればいいですか?](http://stackoverflow.com/questions/) 10732526/how-to-run-sudo-command-without-password-from-java-program) – mistapink

答えて

0

あなたは「sudoを」使用したい場合は、あなたのプログラムを実行しているユーザーは、sudoersファイルグループにする必要があります。

関連する問題