рекомендации по разрешению доступа для пользователей apache tomcat

у меня есть Linux box, совместно используемый различными разработчиками. Они хотят развернуть свои файлы war в apache tomcat, который находится в общей папке (/opt/tomcat).

поскольку у них нет доступа sudo, я должен изменить разрешение папки для каталога tomcat.

структура каталогов под /opt/tomcat is -

bin/

conf/

lib/

logs/

temp/

webapps/

work/

Что такое лучшие практики в вышеуказанной ситуации-самое соответствующее разрешение на доступ к пользователю ?
На данный момент я изменился разрешение 777 для веб-приложений и журналов.

спасибо

3
задан fixer1234
12.12.2022 19:45 Количество просмотров материала 2661
Распечатать страницу

4 ответа

я делаю это так:

мы ставим пользователя tomcat в качестве владельца папки tomcat:

# chown -R tomcat:tomcat /opt/tomcat

пользователи не изменить конфигурацию tomcat:

# chmod -R g+r /opt/tomcat/conf

пользователи могут изменять другие папки:

# chmod -R g+w /opt/tomcat/logs
# chmod -R g+w /opt/tomcat/temp
# chmod -R g+w /opt/tomcat/webapps
# chmod -R g+w /opt/tomcat/work

активировать липкий бит для новых файлов, разрешений, определены:

# chmod -R g+s /opt/tomcat/conf
# chmod -R g+s /opt/tomcat/logs
# chmod -R g+s /opt/tomcat/temp
# chmod -R g+s /opt/tomcat/webapps
# chmod -R g+s /opt/tomcat/work

наконец, мы добавляем группу tomcat мы хотим пользователей, которые могут использовать tomcat:

# usermod -a -G tomcat MIUSER
22
отвечен intropedro 2022-12-14 03:33

Non-Tomcat settings раздел Tomcat по безопасности howto предоставляет полезную информацию по этой теме. Смотрите здесь:

Tomcat не должен запускаться под пользователь root. Создайте выделенного пользователя для процесса Tomcat и предоставьте ему минимально необходимые разрешения для операционной системы. Например, не должно быть возможности удаленно войти в систему с помощью пользователя Tomcat.

права доступа к файлам также должны быть соответствующим образом ограничены. Возьмем в качестве примера экземпляры Tomcat в ASF (где автоматическое развертывание отключено, а веб-приложения развернуты в виде развернутых каталогов),стандартная конфигурация для все Tomcat файлы, принадлежащие корню с группой Tomcat и в то время как владелец имеет права чтения / записи, группа только для чтения и мир не имеет никаких разрешений. Исключением являются журналы, temp и рабочий каталог, принадлежащие пользователю Tomcat, а не root. Это означает, что даже если злоумышленник нарушит процесс Tomcat, он не сможет изменить конфигурацию Tomcat, развернуть новые веб-приложения или изменить существующие веб-приложения. Процесс Tomcat выполняется с umask 007 для поддержания этих разрешения.

11
отвечен Jack 2022-12-14 05:50

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

1
отвечен Calimo 2022-12-14 08:07

Я думаю, что принятый ответ @intropedro является хорошим. Стоит отметить, что с помощью установщика пакетов может сэкономить много головной боли-по крайней мере для Tomcat 7 на Ubuntu apt-get install tomcat7 производит более" стандартный " набор каталогов установки:

  • /etc/tomcat7 для файлов конфигурации,
  • /var/lib/tomcat7 для библиотек ядра и
  • /usr/share/tomcat7 для общих ресурсов.

все разрешения настроены правильно с принцип наименьших привилегий, такой, что добавление пользователей в группу tomcat7 достаточно, чтобы разрешить развертывание. Кроме того, сервер tomcat настроен как служба, которую можно запускать и останавливать как другие (например,sudo service tomcat start или /etc/init.d/tomcat start). Tomcat запускается при перезагрузке автоматически, и есть команда" перезапустить". Я уверен, что есть эквивалентный пакет yum для пользователей RHEL/CentOS. (И да, есть домашний установщик для локальных установок OSX).

если вы имеете проблемы, есть хорошая утилита в /usr/share/bin под названием configtest.sh это сообщает, если есть разрешения или другие ошибки. Обратите внимание, что есть открытая ошибка, которая предлагает добавить некоторые символические ссылки.

мы все еще работает Ubuntu trusty (14.04); для тех, кто работает с более поздними версиями, я считаю, что есть Tomcat 8 apt-get repo.

1
отвечен Tom Harrison Jr 2022-12-14 10:24

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх