У нас есть сервер разработки для OS X для пяти разработчиков, создающих в основном сайты на базе Symfony2. Из пяти человек только двое из нас находятся в группе sudo, что означает, что если бы у других были проблемы с разрешениями, они бы не смогли просто их исправить.

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

Единственная проблема заключается в том, что любые файлы или подкаталоги, созданные Symfony2 (а именно файлы кэша и журнала), не создаются с правами на запись в группу. Я наткнулся на параметр chmod +a и попытался настроить запись ACL следующим образом:

sudo chmod -R +a "developers allow write" path/

Который добавил «+» в конец списка разрешений, показанного с помощью ls . К сожалению, новые файлы все еще не созданы с групповой записью. Может кто-нибудь сказать мне, что я делаю не так, пожалуйста?

1 ответ1

0

Эти новые файлы не будут иметь установленную group write как внесенные изменения влияют только на ACL файла. ACL и POSIX-права - это две разные вещи!

В моих глазах у вас есть два варианта:

  • Измените umask веб-сервера или
  • Установите ACL в родительскую папку, чтобы он наследовался вниз. Поскольку ACL проверяется в первую очередь, любые права на чтение или запись, установленные здесь, должны использоваться сервером.

Второй вариант будет, на мой взгляд, лучшим, так как не имеет значения, какой umask установлен в PHP-приложении, создающем ваши файлы или папки, как он установлен на системном уровне.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .