CGI (suPHP)를 사용하여 PHP에서 사용자의 홈 디렉토리 (예 : /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;
}
}
PHP는 CGI를 사용합니까? 그 맥락에서 현재 사용자는 누구입니까? –
suPHP (suexec 및 기타 다른 방법이 있기 때문에) PHP 프로세스는 스크립트 (.php) 파일을 소유 한 사용자로 실행됩니다. –
당신의 솔루션은 또한 스크립트가 실행되는 사용자가 파일을 읽을 수 있도록 허용합니다. 보통 root만이 할 수 있어야합니다 ... –