如何从C#执行需要sudo的命令

时间:2018-01-07 23:48:59

标签: c# debian .net-core

我需要找到一种从.net核心网络应用程序执行sudo dansguardian -r的方法。我对linux并不熟悉,所以任何与c#运行上述命令具有相同效果的工作都是可以接受的。我们基本上需要dansguardian在从asp网络应用程序编辑后重新加载配置文件。但我相信sudo会需要凭据,所以如何传递这些凭证?

编辑表达安全问题的人员。该网络应用程序供管理员使用。用户可以从网上做的所有事情,他应该已经能够使用putty和ssh手动完成了。

2 个答案:

答案 0 :(得分:2)

使用Web应用程序传递管理员凭据不是一个好主意(即:糟糕的安全措施)。

更好的方法是创建一个只执行所需操作的命令(或脚本),然后使用setuid授予此管理员权限。然后,标准用户可以在不使用sudo的情况下运行该命令,这可以避免整个凭据问题。

请注意,需要仔细设计和实现命令/脚本,以免误用。

请参阅https://en.wikipedia.org/wiki/Setuid

答案 1 :(得分:0)

使用visudo将www-data ALL=NOPASSWD: /usr/sbin/dansguardian添加到sudoers列表允许我使用c#.net核心执行sudo dansguardian -r

我理解为Apache服务器提供多少权限的后果,但是Apache服务器无权访问Web是特定管理组内部的。