为了账号安全,请及时绑定邮箱和手机立即绑定

通过PHP执行root命令

通过PHP执行root命令

PHP
jeck猫 2019-10-15 15:27:52
我有一个CentOS 5.7 linux服务器,并使用php5.3.x。在pfSense系统上,您可以使用php网页重新启动需要root权限的服务。我正在尝试做类似的事情,我已经写了一些php代码来执行shell命令。例如,重新启动sshd服务:<?phpexec('/sbin/service sshd restart');?>我试图通过exec函数执行该命令,但是它需要root权限,但是我们拥有apache用户权限。我遇到了一些解决方案:“以root用户运行apache”确实不安全。我不想那样做。我尝试了“ apache ALL = NOPASSWD:/ sbin / service到/ etc / sudoers”,但是仍然有问题。还有其他解决方案吗?感谢您的回答。现在..这很有趣。我尝试了@refp post,它在我的本地ubuntu服务器上起作用。但是,当我在cenOS vps服务器上尝试相同的操作时。它不起作用。这是apache的错误日志“ rm:无法删除`/ var / lock / subsys / vsftpd':权限被拒绝”
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

我不会让PHP执行任何sudo命令。对我来说,这听起来像是在自找麻烦。相反,我将创建两个单独的系统。

第一个使用PHP(网络层)的系统将处理用户请求。当发出需要sudo命令的请求时,我会将这个请求放在某个队列中。这可能是某种数据库或中间件数据库,例如ZeroMQ。

第二个系统(业务层)将从该队列中读取或接收消息,并且具有执行sudo命令的能力,但不属于Web服务器进程的范围。

我知道这有点含糊,可以使用各种技术以不同的方式解决,但我认为这是最好,最安全的方法。


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 632 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信