我正在尝试从php脚本中运行以下csf命令:
$ipNbr = 199.231.184.25 ; // for example
$csfCommand = 'sudo /usr/sbin/csf --tempdeny ' . $ipNbr . ' 3600;' ;
$csfResult = shell_exec($csfCommand) ;
$csfResult = exec($csfCommand) ; // i also tried exec rather than shell_exec
到目前为止,它根本不做任何事情,包括返回任何类型的错误/诊断消息。在我的日志文件中,我看到:
[Fri Nov 20 13:28:13 2015] [error] [client 66.201.41.254] sh: /usr/sbin/csf: Permission denied
我在visudo中放置了以下一行:
visudo ;
marksdomain.com ALL=(ALL) NOPASSWD: /usr/sbin/csf
我已经尝试了我能想到的每一种组合:
/bin/sudo /usr/sbin/csf . . . .
sudo /usr/sbin/csf . . . .
/usr/sbin/csf . . . .
csf . . . .
任何想法如何从PHP脚本内部启动csf命令?
非常感谢你们。
答案 0 :(得分:1)
我相信我现在已经开始工作,完全归功于上述所有善意和耐心的评论:
$csfCommand = '/usr/bin/sudo -u root -s /usr/sbin/csf --tempdeny ' . $ipNbr . ' 3600;'
visudo命令:
marksDomain(dot)com ALL=(ALL:ALL) NOPASSWD: /bin/sh
marksDomain(dot)com ALL=(ALL:ALL) NOPASSWD: /usr/sbin/csf