Вы должны следовать принципу наименьших привилегий. Сервер (вероятно, 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).