Я хочу, чтобы вся моя веб-архитектура принадлежала root:root
, и позвольте apache
только права пользователя на чтение.
Не знаю, возможно ли это: chmod -R 744
заставляет его вернуть E403 из браузера, доступ запрещен для доступа к xxxx.php
Но поскольку Apache общедоступен («другой»?), Он должен уметь «читать», верно? Я этого не понимаю. Я тоже пробовал чавн root:apache
но результат тот же, что еще больше сбивает с толку ...
Для файлов требуется 644, для каталогов - 755. Использование 744 для всего дерева означает, что Apache не имеет разрешения на чтение содержимого любого из каталогов.
Кроме того, в зависимости от ОС, вы можете столкнуться с проблемами с механизмами безопасности питомника (apparmor, selinux), если используете нестандартное местоположение, например /www
.
Я предоставлю несколько примеров команд для очистки химической завивки, когда я не на своем телефоне.
РЕДАКТИРОВАТЬ:
Это сделает файлы и каталоги доступными для чтения всем:
find /www -type f -exec chmod 644 {} +
find /www -type d -exec chmod 755 {} +
Чтобы прояснить то, что я сказал ранее о разрешениях файлов и каталогов:
-rwxr--r--
ИЗМЕНИТЬ (снова):
Только что заметил тег Centos, поэтому вы можете игнорировать предостережение apparmor. И я считать SELinux по умолчанию отключен, так что это тоже не должно быть проблемой. Все, что вам нужно, - это исправить разрешения.
Изучите использование ACL. Вы сможете оставить root в качестве владельца и по-прежнему предоставлять доступ к apache (без chmod'ing файлов до точки, где это ставит под угрозу безопасность).