мы настраиваем веб-приложение PHP на CentOS, и все наши файлы сейчас находятся в / var / www / html / project /
Apache настроен для работы как apache: apache и имеет доступ к указанному выше каталогу. Сейчас наши файлы и каталоги имеют следующие права:
владелец = корневая группа = apache
КАТАЛОГИ: drwxr-x --- root apache
ФАЙЛЫ: -rw-r ----- root apache
Это безопасная установка? Или лучше использовать нового пользователя, например. "проект" быть владельцем всех файлов и каталогов?
Лучше всего, чтобы владельцем была любая учетная запись с ограниченным доступом, которая используется для загрузки файлов на сервер и управления ими. Группа часто является учетной записью, под которой работает php, поэтому в этом случае будет правильным apache. Остальные разрешения не должны быть установлены как есть. Вы близки к совершенству.
Если у вас есть ситуация, когда несколько учетных записей могут изменять / редактировать файлы, вы можете создать скрипт cron, который рекурсивно перехватывает каталог каждый час или около того, чтобы поддерживать правильное владение. Тот же метод работает и для правильных разрешений.
Кроме того, вы можете изменить umask ограниченной учетной записи пользователя, которой принадлежит право собственности, чтобы она соответствовала вашей схеме разрешений.
Вы определенно играете осторожно.
Ваши настройки не позволят вам создавать дополнительные папки в КАТАЛОГАХ, если вам это нужно по запросу через apache.
Я предлагаю вам использовать следующие разрешения:
DIRECTORIES: drwxrwx--- root apache
FILES: -rw-rw---- root apache
Добавьте своих разработчиков в группу apache, чтобы они могли продолжать запись в эти файлы, если они войдут в систему через ssh или ftp.
У вас могут быть неограниченные права доступа к файлам, если вы доверяете тем, кто их запускает. Если у вас надежный код, вы можете разрешить группе apache делать больше с разрешениями.
Изменить: вообще дать apache:
rwx if it needs to create folders
rw if it needs to create files
r if everything is static
В конце концов, все сводится к предоставлению только тех разрешений, которые вам необходимы. Сделайте их как можно более консервативными и при необходимости открывайте их по мере разработки приложения.
Одна мелочь о группах. Вы увидите несколько примеров, которые это демонстрируют (это тоже правильные настройки):
DIRECTORIES: drwxrwxrw- root somegroup
FILES: -rw-rw-r-- root somegroup
Эти разрешения необходимы для запуска веб-приложения, поскольку пользователь apache не является частью группа разрешения. В таком случае, apache считается всеми поэтому вам нужно установить разрешения, чтобы позволить всем взаимодействовать с вашим сайтом. Под всеми я не имею в виду всех в мире (т.е. анонимных). Я имею в виду всех, кто в настоящее время является пользователем на вашем сервере (посмотрите / etc / passwd, чтобы получить список).