簡體   English   中英

從ac#應用程序遠程運行sudo命令時出現問題。

[英]Issue in running sudo commands remotely from a c# application.

我在c#中編寫實用程序,以獲取遠程計算機的系統信息。 在某些Linux機器中,不允許直接登錄到root,而我正在運行的某些命令需要root特權。 我能夠建立SSH會話(我也使用Renci SSh庫)。

研究使我相信,在這種情況下,我需要使用sudo。 但是當我像這樣遠程使用sudo時,它不起作用。

當我獲得root訪問權限時,代碼的第一部分將起作用。 在不允許直接root訪問的地方-第一部分不返回任何內容,而第二部分使用sudo也不返回任何內容)。 請查看我正在使用的代碼(客戶端是分配給SshClient的名稱)。

我對Linux不夠了解。 請求有關如何解決此問題的指南。

client.RunCommand("cat /proc/cpuinfo | grep model | grep name");
client.RunCommand("dmidecode -s system-manufacturer");

client.RunCommand("sudo cat /proc/cpuinfo | grep model | grep name");
client.RunCommand("sudo dmidecode -s system-manufacturer");

這終於對我有用。 將其發布給那些遇到類似問題的人。

  1. requiretty應該在sudo文件中注釋掉,或設置為特定用戶不需要。

  2. 命令結構應為

     echo <password> | sudo -S <linux command>" 

暫無
暫無

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

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