Próbuję zrozumieć, dlaczego Apache wciąż jest w stanie obsłużyć plik PHP po ustawieniu uprawnień 000 i nadaniu własności rootowi plików.Apache wciąż obsługuje plik PHP z niepoprawnymi uprawnieniami
Jeśli utworzę plik PHP należący do serwera sieciowego z uprawnieniami 644, zostanie on poprawnie wyświetlony. Jeśli następnie zmienię uprawnienia na 000 i zmienię prawo własności na root, plik będzie nadal obsługiwany, ale nie sądzę, że powinien nim być!
Jeśli ponownie uruchomię Apache, plik nie zostanie dostarczony. Dostaję 500 i dziennik błędów narzeka, że nie mogę otworzyć pliku, co jest dokładnie takim zachowaniem, jakiego oczekiwałbym.
Po ponownym uruchomieniu, gdy plik nie jest wyświetlany, jeśli zmienię prawo własności na serwer WWW i uprawnienia z powrotem na 644, plik zostanie ponownie dostarczony, bez konieczności ponownego uruchamiania apache.
To zachowanie dotyczy tylko plików PHP. Pliki HTML zachowują się tak, jak się spodziewałem, gdy tylko usuniesz uprawnienia, pliki nie będą wyświetlane.
Zasugerowano mi, że Apache może utrzymywać uchwyt pliku na pliku PHP i że nie widział zmian uprawnień, dopóki nie zostanie ponownie uruchomiony. Próbowałem używać lsof w pliku, ale nie widziałem żadnych otwartych deskryptorów plików.
Próbowałem też eksperymentować, gdzie zacząłem od własności serwera sieciowego i 644 uprawnień, i sprawdziłem, czy plik może być obsługiwany. Następnie zmieniłem nazwę pliku, zmień uprawnienia na 000 i własność na root, a następnie przeniosłem plik z powrotem. Następnie plik był nadal serwowany przez Apache.
Czy ktoś może rzucić światło na to, co się tutaj dzieje?
Poeksperymentuj z: dostęp do 'my.hostname/index.php' przed i po zmianie, a następnie dostęp do' my.hostname/index.php? Itok = randomnumbers', jeśli drugie żądanie się nie powiedzie, to buforowanie. – apokryfos
Czy na pewno witryna nie jest obsługiwana z pamięci podręcznej? – dev0
@apokryfos Sprawdziłem i zdecydowanie nie buforowałem. Zmieniłem skrypt, aby pokazać czas w sekundach i pokazać ciąg zapytania. Wyniki testów opisanych w moim poście są takie same, a czas jest aktualizowany i wyświetlany jest ciąg zapytania (który zmieniam za każdym razem). – Dom