通过PHP的shell_exec()从网页执行bash脚本,这需要另一个用户的权限?

时间:2012-12-12 21:27:50

标签: php linux apache bash centos

我在Centos盒子上有几个bash脚本,我用它来做基本的服务器管理工​​作,比如重启服务等。我把它们作为标准用户运行,也是脚本的所有者。

我尝试使用apache用户在PHP中使用shell_exec()运行这些,但它根本不起作用 - 我猜它没有足够的权限(即使是775并且在正确的组中! )运行我想要的一切。

我已经尝试编辑sudoers文件,授予apache运行脚本调用的权限,但它仍然无效,并且没有我能看到的错误消息。

有什么想法?如何从需要不同用户运行的网页触发脚本?

2 个答案:

答案 0 :(得分:0)

确保安全模式已关闭。同时验证用户是否是您期望的用户:

<?php echo exec('whoami'); ?>

答案 1 :(得分:0)

  1. 检查哪个用户正在运行apache(对于debian,它是www-data)
  2. 在sudoers列表中添加www-data并允许执行您喜欢的文件
  3. 检查哪个shell在/ etc / passwd中有www-data用户(你需要提供有效的shell)
  4. 使用/ bin / bash -x运行脚本(它肯定会输出)
相关问题