macos — Правильный владелец / группа / разрешения для файлов / папок сайта Apache 2 в Mac OS X?

Трудно найти конкретные ответы для Mac на этот вопрос в Интернете, так что я надеюсь, что кто-нибудь там может поставить этот вопрос для меня? Мои разрешения облажались на моих сайтах, и я не уверен, как их исправить, просто не нажимая рекурсивный 777 на все, что, очевидно, неверно.

Спасибо!

109

Решение

Это наиболее строгий и безопасный способ, который я нашел, как объясняется здесь для гипотетического ~/my/web/root/ каталог для вашего веб-контента:

  • Для каждого родительского каталога, ведущего к вашему веб-корню (например, ~/my, ~/my/web, ~/my/web/root):
    • chmod go-rwx DIR (никто кроме владельца не может получить доступ к контенту)
    • chmod go+x DIR (чтобы позволить «пользователям», включая _www, «войти» в каталог)
  • sudo chgrp -R _www ~/my/web/root (весь веб-контент теперь группа _www)
  • chmod -R go-rwx ~/my/web/root (никто, кроме владельца, не может получить доступ к веб-контенту)
  • chmod -R g+rx ~/my/web/root (все веб-содержимое теперь доступно для чтения / исполнения / ввода с помощью _www)

Все остальные решения оставляют файлы открытыми для других локальных пользователей (которые входят в группу «staff», а также, очевидно, входят в группу «o» / others). Затем эти пользователи могут свободно просматривать и получать доступ к конфигурациям БД, исходному коду или другим конфиденциальным сведениям в ваших файлах веб-конфигурации и сценариях, если они являются частью вашего контента. Если это не проблема для вас, то обязательно воспользуйтесь одним из более простых решений.

180

Другие решения

Если вам действительно не нравится Терминал, вот графический интерфейс, который вам подсказывает:

1) Зайдите в домашний каталог вашего пользователя (лудо будет моим) и от файл выбор меню Получить данные CMDя в инспекторе:

Окно получения информации Раздел разрешений

2) По альт / опция нажав на [+] знак добавить _www группа и установить его разрешение только для чтения :

Получить информацию добавить пользователей & amp; Выделенные группы и выделенный сервер World Wide Web

  • Поэтому подумайте (хорошая практика) о том, чтобы не хранить личную информацию в корне домашней папки вашего пользователя ( жесткий диск) !
  • Вы можете пропустить этот шаг, если группа ** Everyone ** имеет ** разрешение только для чтения **, но, поскольку AirDrop, папка ** / Public / Drop Box ** в основном бесполезна …

3) Показать Получить данные инспектор вашего пользователя Места папку и воспроизведите шаг 2, затем в подменю действий с шестерней выберите Применить к закрытым пунктам … :

Подменю действия Get Info Применить к вложенным элементам ... выделено

Вуаля 3 шага и графический интерфейс только …

29

Я знаю, что это старый пост, но для тех, кто обновляется до Mountain Lion (10.8) и испытывает подобные проблемы, добавив FollowSymLinks чтобы ваш файл {username} .conf (в / etc / apache2 / users /) помог мне. Итак, файл выглядит так:

<Directory "/Users/username/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
12

2 месяца назад, но лучше поздно, чем никогда! На 10.6 у меня есть папка с документами на веб-сервере:

owner:root
group:_www
permission:755

_www — это пользователь, который запускает apache под Mac OS X. Затем я добавил ACL, чтобы предоставить полные права группе «Администраторы». Таким образом, я все еще могу вносить любые изменения с моим администратором, не проходя аутентификацию от имени пользователя root.
Кроме того, когда я хочу разрешить веб-серверу выполнять запись в папку, я могу просто выполнить команду chmod на 775, оставив всех, кроме root: _www только с правами на чтение / выполнение (исключая любые ACL, которые я применил)

9

В моей системе 10.6:

vhosts folder:
owner:root
group:wheel
permissions:755

vhost.conf files:
owner:root
group:wheel
permissions:644
4

Владельцем пользователя для меня является пользователь с правами администратора, а группа _www и работает с разрешениями, установленными на 775 для dir и для файлов 664

0

Сначала откройте терминал, а затем перейдите в каталог веб-сервера.

cd /Library/WebServer/Documents

а затем введите это, и что вы будете делать, вы дадите read а также write разрешение

sudo chmod -R o+w /Library/WebServer/Documents

Это обязательно сработает!

-2
По вопросам рекламы [email protected]