通过PHP

时间:2016-07-14 12:23:53

标签: php linux bash apache centos

我正在尝试通过PHP运行at命令

<?php
shell_exec("echo \"php /tmp/skript.php `whoami`\" | at now");
echo shell_exec("atq 2>&1");

输出:

  

247 2016-07-14 11:30 = apache

但是命令at没有执行,在此之后,时间从队列中消失。

我在生产服务器上运行Cent OS。 (SELinux被禁用)

当我在Debian的个人电脑上运行时,一切正常。 (SELinux也在这里禁用)

权限没问题:

bash-4.1$ ls -l /tmp/skript.php 
  

-rwxrwxrwx 1 admin admin 74113.čec08.16/tmp/skript.php

当我以 apache

执行shell时
me@PC:~$ sudo -u apache /bin/bash
bash-4.1$ echo "php /tmp/skript.php `whoami`" | at now 

脚本将作为 apache

执行

当我这样做时:

me@PC:~$ sudo usermod -s /bin/bash tom 

一切正常,但这很糟糕,而不是我想做的事情。这不是我的答案/解决方案。

我的Debian也将 apache 作为shell / bin / nologin ,它正在运行。另外at.deny为空,at.allow不存在。

有人可以回答这个棘手的问题吗?

0 个答案:

没有答案