Мне трудно найти совет по поводу идеальных разрешений для структуры папок веб-сайта на RHEL5.
Я хочу, чтобы несколько пользователей могли изменять / добавлять / удалять файлы в папках веб-сайта, но некоторые файлы, такие как те, которые содержат пароли базы данных, должны быть защищены, чтобы члены команды не могли с ними ничего делать (читать / удалять).
Я собирался создать группу www, добавить apache и всех пользователей в эту группу, добавить все файлы и папки в эту группу, а затем сделать файлы паролей db, принадлежащие apache, группе apache - однако я обнаружил, что если у каталога есть права на запись в группу www, они все равно могут удалить (и воссоздать) файл паролей.
Единственное решение - переместить файл паролей в собственный каталог и удалить разрешения на запись?
Из того факта, что вы упомянули «пароль базы данных», я предполагаю, что apache настроен для обслуживания каких-то динамически генерируемых страниц из каталога, в котором члены группы www имеют доступ на запись.
В этом случае вы не сможете сохранить секрет от членов группы www, где бы вы его ни разместили.
Члены группы могут просто загрузить вредоносный сценарий на сервер, который считывает пароль и пересылает его им (по электронной почте, ftp, http,…).
Если пользователи не могут загружать код на сервер, поместите их в песочнице, а не в файле паролей.
Вероятно, есть лучший способ сделать это, но если вы работаете на ext2 / 3, вы можете сделать файл неизменяемым, используя
# chattr +i file
Это означает, что файл нельзя изменить, удалить или переименовать, даже root. Если вы хотите изменить файл, вы должны сначала chattr -i файл