繁体   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