Как запустить 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 и разрешить ему запускать этот "двоичный файл" без проверки пароля?
Думаю об этом.