我无法找到在PHP中使用CGI(suPHP)获取用户主目录(例如/home/jack;无论bash指向哪里)的方法。 $ _ENV数组为空,getenv('HOME')不返回任何内容。从PHP读取用户主目录
我想这样做的原因是,在配置,否则由于缺少说,我想找到/home/user/.myappnamehere通过我的应用程序使用的变量文件,因为大多数Linux应用程序做。
我已经建立了一些东西,但它不是最好的;虽然它的工作原理,它假设了很多关于系统(例如存在/ etc/passwd文件)
$usr = get_current_user();
$passwd = file('/etc/passwd');
$var = false;
foreach ($passwd as $line) {
if (strstr($line, $usr) !== false) {
$parts = explode(':', $line);
$var = realpath($parts[5].'/.report');
break;
}
}
使用CGI的PHP?在这种情况下,谁将成为当前用户? – 2010-01-31 21:54:15
由于suPHP(以及suexec和其他任何方式),PHP过程以拥有脚本(.php)文件的用户身份运行。 – 2010-01-31 21:55:52
你的解决方案还假定脚本运行的用户可以读取该文件,通常只有root用户才能执行该操作...... – 2010-01-31 22:31:20