2014-09-23 81 views
2

我正在运行CentOS 6,因为httpd是作为用户'apache'执行的。出于安全原因,我想使用sudo通过EXEC作为用户“AQ”被执行:与exec sudo php执行失败CentOS

<?php exec("/usr/bin/sudo -u aq somescript.sh",$output,$return_val);?> 

随着visudo命令我加入以下行:

apache ALL = (aq) NOPASSWD: ALL 

而且我临时给了Apache作为登录shell(/ bin/bash),以便能够测试

/usr/bin/sudo -u aq somescript.sh 

直接工作。

php exec失败,因为如果sudo被调用,$ return_val传递'1'。

+0

sestatus返回被禁用,因此SELINUX被关闭。 – Stefan 2014-09-23 12:18:22

回答

2

注释掉该行从/ etc/sudoers文件

默认requiretty

心中已经在几个方面测试你的情况这蚂蚁一个让我成功。

+0

加上1,000,000 upvotes给你! – 2015-06-22 18:25:07