У меня есть существующий программный пакет, работающий на 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 и позволить ему запускать этот «двоичный» без проверки пароля?
Подумай об этом.