Вы должны следовать принцип наименьших привилегий , Сервер (возможно www-data
, но вам нужно проверить) нужно уметь читать большинство файлов (скажем, все) и записывать только в журналы. Веб-разработчикам разрешено писать, где им нужно. Установите бит закрепления в каталогах, чтобы удалить его мог только владелец файла.
На практике вам нужно создать группу (например, webdev
) и добавьте в него всех разработчиков и сервер ( usermod -aG webdev <user>
или же usermod -A webdev <user>
в зависимости от вашего вкуса Linux). chown
все файлы и каталог для пользователя веб-сервера, chmod все каталоги до 500 и все файлы до 400 (кроме bin
где исполняемых файлов тоже должно быть 500).
Предоставить права на запись на /opt/tomcat
группе (это будет 570) и установите бит закрепления, чтобы они могли удалять только те файлы, которые принадлежат им (chmod 1570). Предоставьте серверу разрешение на запись в журналы и права на чтение для разработчиков (0740 для папки, 0640 для файлов, бит закрепления, вероятно, не требуется, и никогда не предоставляйте его файлу, только папкам, поскольку он другое значение (выполняется с разрешениями владельца, когда файл является исполняемым)).
Затем вам нужно предоставить права на запись (1570) webdev
на некоторых из каталогов. Здесь вам понадобится метод проб и ошибок, и это может зависеть от приложения. Эти папки должны быть 1570, а некоторые другие могут быть 0500).
Разработчикам необходимо предоставить группе права доступа на чтение для своих файлов, чтобы сервер мог их читать (это 640), а также выполнять в каталогах (это 750).