我想从shell CGI脚本重新启动Linux服务,这显然需要root权限。我有点没有我知道的选择:
- 授予对我的 Web 服务器的 root 访问权限似乎非常危险
- 在我的CGI脚本上使用
setuid
不起作用,人们说这通常是一个坏主意 - 编写另一个服务并通过某种 IPC 从我的 CGI 与之通信 - 似乎是一个巨大的矫枉过正
做这样的事情的最佳实践是什么?
另一种选择是使用 sudoer .作为最佳实践,始终为Apache用户提供所需的最少权限。
使用 sudo visudo
编辑 sudoers 文件并添加一行
apache ALL = NOPASSWD: /usr/sbin/service /usr/local/myapp *