Я пытаюсь понять, почему Apache все еще может обслуживать PHP-файл после того, как я установил разрешения 000 и предоставил право собственности на файл.Apache все еще обслуживает PHP-файл с некорректными разрешениями
Если я создаю файл PHP, принадлежащий веб-серверу с разрешениями 644, его обслуживание выполняется правильно. Если я затем изменю разрешения на 000 и изменим права собственности на root, файл все равно будет обслуживаться, но я не думаю, что это должно быть!
Если я перезапустил Apache, файл не будет обслуживаться. Я получаю 500, и журнал ошибок ворчит о том, что вы не можете открыть файл, и это именно то, что я ожидал.
После перезагрузки, когда файл не будет обслуживаться, если я вернусь обратно на веб-сервер и вернусь к 644, файл будет снова загружен без необходимости перезапуска apache.
Это поведение верны только для файлов PHP. Файлы HTML ведут себя так, как я ожидал, как только вы удалите разрешения, файлы не будут обслуживаться.
Мне было предложено, чтобы Apache мог поддерживать дескриптор файла в файле PHP и что он не видел изменений разрешения до его перезапуска. Я пробовал использовать lsof в файле, но не видел никаких открытых дескрипторов файлов.
Я также пробовал и экспериментировал, где я начал с владения веб-сервера и 644 разрешений, и проверил, что файл может быть отправлен. Затем я переименовал файл, изменил разрешения на 000 и права собственности на root, а затем переместил файл обратно. После этого файл был еще, обслуживаемый Apache.
Может ли кто-нибудь проливать свет на то, что здесь происходит?
Поэкспериментируйте с этим: войдите в «my.hostname/index.php» до и после изменения, а затем получите доступ к «my.hostname/index.php? Itok = randomnumbers», если второй запрос терпит неудачу, а затем он кэшируется. – apokryfos
Вы уверены, что сайт не обслуживается кешем? – dev0
@apokryfos Я проверил и его определенно не кеширование. Я изменил сценарий, чтобы показать время в секундах и показать строку запроса. Результаты тестов, которые я описал в моем сообщении, совпадают, и время обновляется, и отображается строка запроса (которую я меняю каждый раз). – Dom