Назад | Перейти на главную страницу

PHP unlink (), удаляющий файл, пользователь не имеет разрешения на

Немного длинный выстрел, но подумал, что посмотрю, есть ли у кого-нибудь исправление для этого:

У меня возникла проблема, из-за которой функция PHP unlink () может успешно удалить файл, даже если к рассматриваемому файлу были применены явные разрешения NTFS. Я даже попытался удалить все разрешения для файлов NTFS и тому подобное - тот же результат, и это меня озадачило.

ФАКТЫ

Есть ли у кого-нибудь мысли по этому поводу?

Как я могу предоставить папки / файлы, которые нельзя удалить в каком-либо месте через PHP unlink (), которые находятся внутри определенной области open_basedir?

Я использую open_basedir, чтобы скрипты не вмешивались в файлы за пределами заявленного open_basedir - похоже, это работает нормально - например: невозможно удалить файлы, которые находятся за пределами местоположения, определенного open_basedir.

Привет, если PHP может удалить файл, даже если в разрешениях указано иное. Это, вероятно, означает, что Apache работает как пользователь с правами администратора.

Вы всегда можете попытаться проверить папку в Windows, чтобы убедиться, что все разрешения для дочерних папок сброшены, если вышеуказанная проблема не является проблемой.

Это возможно только в том случае, если сервер Apache на самом деле не работает под пользователем, о котором вы говорите. Включите аудит этой папки и проверьте еще раз, чтобы увидеть, какой пользователь удаляет файл.

Кроме того, кто является владельцем файла?

Я не использую PHP в Windows, поэтому не могу быть уверенным в его базовом коде, но когда я пишу какую-либо форму функции удаления, первое, что у меня есть, это попытаться удалить существующие разрешения. Просто возможно unlink() делает то же самое. Если у вас включено соответствующее ведение журнала, вы сможете увидеть любое такое поведение в журналах событий Windows, поэтому зарегистрируйтесь там.