[英]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");
這終於對我有用。 將其發布給那些遇到類似問題的人。
requiretty應該在sudo文件中注釋掉,或設置為特定用戶不需要。
命令結構應為
echo <password> | sudo -S <linux command>"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.