我可以使用命令./del_user.sh
del_user.sh如下
#!/bin/sh
userdel username
当我从PHP页面运行此脚本时,它不起作用。
echo shell_exec('./del_user.sh');
两个文件都在同一目录中。
可能是什么问题?
答案 0 :(得分:1)
顺便说一下,你还没有说明你的目标是什么,或者这个脚本应该做什么。这是一些用户管理应用程序的一部分还是仅仅是一次性的小任务?
<强>答案:强> 为了实现这一点,你必须让Apache具备sudo的能力,这样才能获得暂时提升的权限。您可能需要在Google上搜索有关如何执行此操作的操作,具体取决于您的操作系统,但此链接提供了有关如何在Ubuntu中执行此操作的一些指导:Ubuntu Forums
我还建议不要使用bash脚本,因为它不是必需的。您可以使用接受命令行参数的PHP脚本。因此,在您的主脚本中,您可以使用以下内容:shell_exec('php /path/to/del_user.php username');
然后在del_user.php中你会有shell_exec('userdel '.$argv[1]);
之类的东西。有关命令行参数的更多信息,请访问:$argv
最后,您可以将其直接放入主脚本中,而不是两次使用shell_exec。换句话说,只需使用shell_exec('userdel '.$username);
而不是调用脚本。由于Apache能够sudo,应该能够直接执行它。