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

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

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

2 ответа

Решение

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

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

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

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

TOMCAT6_USER=tomcat6

читать

TOMCAT6_USER=root

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

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

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

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

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

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

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

$ sudo chmod + x бинарный

ИЛИ ЖЕ

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

затем

$sudo chmod u+s бинарный

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

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

Думаю об этом.

Другие вопросы по тегам