У меня проблемы с разрешением на моем сервере. Я использую пользовательского разработчика, чтобы вытащить свой репозиторий git на сервер. Затем apache использует своего собственного пользователя apache для написания и выполнения кода. У меня всегда возникают проблемы, когда приложение хочет что-то записать в каталог (например, файлы журнала и кеш ...), если я выполняю задание cron, и оно использует мои права разработчика и хочет добавить что-то в записанные папки пользователем apache.
Мой вопрос: как сделать так, чтобы у моего разработчика был такой же доступ на запись / удаление, что и у моего apache, и чтобы избежать конфликтов разрешений друг с другом? Я плохо владею командой linux, поэтому было бы полезно, если бы вы могли предоставить ссылки или просто примеры этого.
Спасибо.
Моя идея заключалась в том, чтобы сделать каталог владельцем следующего: developer.app или apache.app.
В Баше:
ROOT=/some/directory/app
chown -R developer.app $ROOT
или
chown -R apache.app $ROOT
В первом случае необходимо иметь «apache» в группе «приложение», во втором - «разработчик» в группе «приложение». Затем вам нужно установить одинаковые разрешения для обоих: владельца и группы для всех файлов / каталогов. Как это сделать, зависит от используемой вами инфраструктуры. Это может быть grepping / etc / passwd для поиска второго числа и / etc / group для имен групп. Если вы используете centrify или другое программное обеспечение, которое подключает Linux к централизованной базе данных учетных записей, вам, вероятно, потребуется выполнить su для конкретной учетной записи и выполнить id
.
Мое упрощенное практическое правило - сделать все файлы rw-
и скрипты в каталоге хуков rwx
, но ваш код, вероятно, требует большей детализации. Это хорошая практика - избегать разрешений 777.
find $ROOT -type f -exec chmod 0660 {} \;
find $ROOT -type d -exec chmod 0770 {} \;
find $ROOT/.git/hooks -type f -exec chmod 0770 {} \;
Вы можете предпочесть использовать ug+rw
или ug+rwx
что только добавляет недостающие разрешения. Наверное, лучше, если у вас уже есть какие-то конкретные eXec
разрешения на некоторые файлы.
Чтобы автоматически сделать новые файлы и каталоги доступными для чтения / записи для обоих, установите umask на 0007.