【发布时间】:2012-11-07 21:30:02
【问题描述】:
我需要为一些自动化工作编写一些脚本,
我在本地 apache 服务器上放了一个 php 文件 测试.php
<?php
system("bash inform.sh");
?>
inform.sh的内容是:
#!/bin/bash
proc_id=`ps -ef|grep "sleep"|grep -v "grep"|awk '{print $2}'`
kill -9 $proc_id
我在 shell 上运行睡眠进程,并在 firefox 上打开 php 页面:localhost/test.php 但它不会杀死睡眠过程, 如果我直接通过shell运行php,那么它可以工作 这有什么问题以及如何处理?谢谢
【问题讨论】:
-
赌一百万美元是一个许可问题。 Web 服务器用户和您登录到 shell 的任何用户都具有不同的访问权限
-
他们在同一台机器上
-
$retval = system("bash inform.sh");$retval 是什么? -
是否可以更改shell用户,例如“sudo -u webserver-user sleep”
-
关于 sudo ......也许看看
su --session-command=\"bash inform.sh\" someuser &但首先验证这是权限(特定于用户)相关。据我所知,您在共享主机上以安全模式运行 php 5.16。