如何以 root 身份执行(某些)CGI 命令

如何以 root 身份执行(某些)CGI 命令

我想在我的 APACHE 服务器中放入一个简单的 CGI 脚本。我可能想用 C 语言编写它(但如果愿意,也可以用 PERL 编写)。

问题在于它必须包含一些只能由 root 执行的行(iptables例如),而 webuser 是运行服务器的用户。

我怎样才能让这些行可由 root 执行?

答案1

一种解决方案可能是为相关命令编写一个包装脚本,严密保护该脚本并允许无密码 sudo。

编辑:包装脚本只是一些简短的 shell 脚本,您可以在其中卸载关键命令。您可以保护它(例如,使其仅对 Apache 用户可用)。

对于 sudo,Serverfault 和其他地方已经有很多问题,并且还有它的手册页:man sudoman sudoers

如果您在阅读现有文档后仍遇到困难,您仍然可以针对您的问题提出具体问题。

答案2

你可以使用设置用户标识在脚本上。可执行文件设置用户标识以任何普通用户的所有者身份执行。(/bin/ping例如)

非常非常小心处理。确保脚本不会被恶意代码覆盖等。

设置用户标识

相关内容