Kullanıcının giriş dizini (örneğin, /home/jack; temelde ne olursa olsun) PHP'de CGI (suPHP) kullanarak bir yol bulamıyorum. $ _ENV dizisi boş ve getenv ('HOME') hiçbir şey döndürmez. Çoğu Linux uygulamaları gibiPHP'deki kullanıcı ana dizini okuyun
ben bunu yapmak istiyorum nedeni, yapılandırma aksi demenin oid'in içinde, ben /home/user/.myappnamehere benim uygulama tarafından kullanılan değişken dosyaları bulmak istiyoruz olmasıdır.
Bir şey yaptım, ama en iyisi değil; Çalışır da, sistem hakkında çok şey (ör varlığını/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 deneyin? Bu bağlamda mevcut kullanıcı kim olacak? –
SuPHP'den (ve ayrıca suexec ve diğer yollar ile), PHP işlemi betik (.php) dosyasının sahibi olan kullanıcı olarak çalıştırılır. –
Çözümünüz ayrıca, komut dosyasını, kullanıcının yalnızca root yapması gereken dosyayı okumasına izin verdiği gibi çalıştığını varsayar. –