我正在尝试通过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
不存在。
有人可以回答这个棘手的问题吗?