我试图写一个脚本来检查特定的目录退出或不在当前登录的用户的主目录通过PHP。
在我使用的终端上
cd ~
pwd
显示
/home/ramratan
。但是当我尝试通过php时
chdir("~");
PHP Warning: chdir(): No such file or directory (errno 2)
in php shell code on line 1
PHP Stack trace:
PHP 1. {main}() php shell code:0
PHP 2. chdir() php shell code:1
我也试过了
chdir("/home");
echo shell_exec("pwd");
它显示
/home
而不是/home/ramratan
,如果有人帮助我在chdir("/home")
中应该做什么以便它返回/home/ramratan
。我也试过,但没有成功
chdir("/home/".shell_exec("whoami"));
PHP Warning: chdir(): No such file or directory (errno 2)
in php shell code on line 1
PHP Stack trace:
PHP 1. {main}() php shell code:0
PHP 2. chdir() php shell code:1
最佳答案
您可以使用whomai
找到当前用户名,正如您已经编写的那样。使用该名称在/etc/passwd
中查找与该用户对应的行。从该行中,输出主目录信息:
$currentUserHomeDir = exec('grep `whoami` /etc/passwd | cut -d ":" -f6');