supermega 3 Zgłoś post Napisano Luty 11, 2012 Mój problem dotyczy uprawnień dostępu do plików strony www i nie jest związany z konktretnym serwerem. Czy da się w jakiś sposób uniemożliwić właścicielowi konta www otwieranie plików innego konta www? Problemu nie da się rozwiązać na bazie zwykłych uprawnień dostępu (chmod), bo pliki muszą mieć uprawnienia umożliwiające otwarcie ich przez użytkownika pod jakim działa serwer www (załóżmy www-data). Gdy właściciel innego konta spróbuje otworzyć ten plik np. przez PHP lub CGI to zrobi to też jako www-data. Zatem komenda PHP: file('/home/user150/public_html/sql.inc.php'); musi zadziałać (wykonana przez dowolny skrypt php na serwerze, należący do innego usera). W PHP kiedyś był safe_mode, który sprawdzał zgodność UID pliku przy jego otwieraniu z UID uruchomionego skryptu. Jednak odeszli od tego trybu. Da się go czymś zastąpić? Da się cokolwiek poradzić w przypadku skryptów CGI? Jak sobie z tym radzą firmy hostingowe? Udostępnij ten post Link to postu Udostępnij na innych stronach
d.v 1409 Zgłoś post Napisano Luty 11, 2012 www-data to nieporozumienie, po to mamy takie wynalazki jak FCGI/FastCGI + suEXEC, żeby takich głupot nie robić. Każdy user ma swoje pliki i inni mogą go w żyć pocałować - nie dasz do pliku praw dla "others" to go nie zobaczą. Udostępnij ten post Link to postu Udostępnij na innych stronach
supermega 3 Zgłoś post Napisano Luty 11, 2012 W jaki sposób FCGI się odnosi do uprawnień? Aby uzyskać podobną funkcjonalność w PHP należy odpalać PHP przez CGI czy są inne metody? Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Luty 11, 2012 Ano w takim, że jakimś cudem (czy to przez sam daemon www + suexec, czy to przez jakiś menedżer procesów) odpalasz sobie "wiszące" i oczekujące na requesty procesy php-fastcgi. Odpalasz je z różnymi UID. A potem odpowiednio kierujesz httpd, co by do wykonania skryptów php użył tych wiszących procesów. Udostępnij ten post Link to postu Udostępnij na innych stronach