以另一个用户身份从php运行bash脚本

时间:2014-06-13 13:48:17

标签: php linux bash ubuntu permissions

我想运行一个bash脚本而不在我的Ubuntu系统中打开终端。其他一些用户必须每天检查并运行该过程。所以我想我可以构建一个可以运行脚本的简单php网站。在Stack Overflow和googleing上阅读了一些内容后,我认为shell_exec可以解决这个问题。但由于我不想在某些目录中为www-data授予权限,我想以脚本身份运行脚本,用户meteo。

这是我的php:

$autput = shell_exec('date +%d/%m/%Y-%H:%m');
echo "<pre>Hora de inicio: $autput</pre>";

$output = shell_exec('/home/meteo/RAMS/SCRIPTS/RAMS_operatiu.bash');
echo "<pre>".$output."</pre>";

sudoers文件的内容,sudo visudo

meteo   ALL = NOPASSWD: /home/meteo/RAMS/SCRIPTS/RAMS_operatiu.bash
www-data   ALL = NOPASSWD: /home/meteo/RAMS/SCRIPTS/RAMS_operatiu.bash

这样,www-data用户运行我的脚本(RAMS_operatiu.bash)但是由于这个脚本运行mpich作业,它必须检查mpd.conf然后脚本崩溃,因为没有这样的www-data文件。它实际上存在于meteo。所以我想以比me-data更好的方式运行meteo。我试着用

$output = shell_exec('sudo -u meteo /home/meteo/www/RAMS/inicio_RAMS.sh');

但是找不到要告诉php脚本以meteo运行的点,而不是www-data。这可能吗?可能我错过了一些东西。

非常感谢你的帮助。

0 个答案:

没有答案