Ben web sunucusu PHP olarak çalıştırıldığı hangi kullanıcı bulabilirim?

6 Cevap php

Ben dizin yazılabilir değilse ben web sunucusu kim için dizinin sahibini belirlemek için açıklayan bir hata iletisi görüntülemek istiyorsanız, sunucu üzerinde bir dizine yazma erişimi gerekiyor PHP basit bir web uygulaması yazıyorum (örneğin www-data, kimse) olarak çalıştırıldığı ama çoğu insan bu bilmiyorum kim dizini chown için bunları söylemek mümkün olması güzel olurdu. PHP bu bulmak mümkün mü?

6 Cevap

Çıkış shell_exec()

Kullandığım kirli hızlı-ve-trick /tmp/ için bir dosyayı yazmak için. Bu PHP işlem tarafından kullanılan kullanıcı ve grupla yaratılmalıdır.

Unix platformlarında, bu çözüm POSIX uzatma içeri yüklü veya derlenmiş şartıyla, hatta güvenli modda çalışabilir

$user = posix_getpwuid(posix_geteuid());
echo $user['name'];

Dokümanlar olan here.

Linux / Unix açıksa:

<?php
$temp = tmpfile();
print_r(posix_getpwuid(fileowner($temp)));
?>

Bazı bash çalıştırabilirsiniz varsa, whoami veya /proc etrafında karıştırmak mümkün olabilir kullanabilirsiniz

Bu hata iletisi, bir Windows sunucu ortamında ayrı düşer. "Web sunucusu dizine yazma erişimi olduğundan emin olun" muhtemelen daha iyi bir hata mesajı değildir.