Назад | Перейти на главную страницу

Как запустить tomcat6 на ubuntu с правами root?

У меня есть существующий программный пакет, работающий на Ubuntu, в котором используется chroot jail, поэтому его нужно запускать как root. Я хочу выполнить это из веб-приложения java, работающего в Tomcat6 на Ubuntu, поэтому, предположительно, мне нужно запустить Tomcat6 как root вместо пользователя Tomcat6.

Как мне изменить tomcat6 на запуск от имени пользователя root вместо пользователя tomcat6?

Я предполагаю, что это связано с более ранним вопросом?

Ubuntu - может ли пользователь без полномочий root запускать процесс в chroot jail?

Чтобы запустить Tomcat как root ... *

Предполагая, что вы установили пакет tomcat6 из репозитория Ubuntu, отредактируйте файл /etc/init.d/tomcat6 и измените строку:

TOMCAT6_USER=tomcat6

читать

TOMCAT6_USER=root

Что, как говорится...

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

Конечно, шансы на это невелики, но лучше планировать худшее и надеяться на лучшее.

Более безопасный подход состоит в том, чтобы продолжить запуск Tomcat в качестве пользователя tomcat6 по умолчанию и сделать так, чтобы это вызывало внешний процесс, привязанный к корневому каталогу, более изолированным образом. Как вы это делаете, зависит от вызываемого процесса и от того, что должно произойти.

Если вы разместите информацию о вызываемом процессе, о том, что он делает и почему другие могут помочь вам определить лучший способ достижения этой цели. Например, вы можете настроить монитор, который выполняет chrooted задачу всякий раз, когда содержимое каталога изменяется, или локальную веб-службу, которую Tomcat может вызвать для запуска процесса.

Не могли бы вы установить липкий бит исполняемого файла программного пакета? В этом случае он всегда будет запускаться от имени владельца файла, которым в данном случае будет root.

Сделайте двоичный файл исполняемым для всех пользователей (или, по крайней мере, для группы, которая включает tomcat6) и установите липкий бит пользователя.

$ sudo chmod + x двоичный

ИЛИ

$ sudo chmod 750 binary // (с tomcat6 в группе файловой группы)

затем

$ sudo chmod u + s двоичный

Это должно сработать, если нет. У меня нет практического опыта работы с chroot, но при стандартной настройке это сработает.

Кроме того, можно ли добавить tomcat6 в файл sudoers и позволить ему запускать этот «двоичный» без проверки пароля?

Подумай об этом.