Shell不能识别别名命令



我试图追踪一个Wordpress网站是如何不断被黑客攻击的,我试图追踪的一件事是哪些文件被"touch"命令击中,以伪造last_modified日期(许多黑客这样做是为了隐藏自己,在这种情况下正在发生)。我创建了一个名为newtouch的脚本,它只记录发送给它的所有参数的时间戳,然后将touch别名为newtouch。当我ssh登录时,这可以正常工作,但当我试图从php调用它时,它无法识别别名。我做了一些研究,意识到这是因为php在不同的shell下运行:

$ PHP -r 'echo shell_exec("echo $0");'sh

在主目录中没有.profile,所以我创建了一个,但是不管我在里面放了什么,由于某种原因,我都不能让shell识别它。为了进行测试,我尝试了一个名为touch2的简单别名,它只是简单地响应单词test,并在.profile中尝试了以下所有操作,但都不起作用:

alias touch2='echo test'
alias touch2 'echo test'
touch2 () {
    echo test
}

无论我尝试什么,我得到相同的结果:

$ sh
$ alias
$ touch2
sh: touch2: command not found
$ php -r 'echo shell_exec("alias");'
$ php -r 'echo shell_exec("touch2");'
sh: touch2: command not found
#!/path/to/bash
mv /path/to/touch /some/where/else
chmod -x /some/where/else/touch
chown root:root /some/where/else/touch
mv /path/to/new/touch /where/touch/was/before 

最新更新