Я хорошо знаю, что запуск tomcat6 действительно плох с точки зрения безопасности - и открывает доступ ко всем видам рисков безопасности и векторам атак. При этом сказано:
Когда я меняю запись в /etc/init.d/tomcat6 на
TOMCAT6_USER=root
а затем запустить
sudo /etc/init.d/tomcat6 start
я получил
[fail]
и ничего не записывается в журналы в / var / log / tomcat6, и никакая запись для tomcat6 не создается в / var / run
Как мне диагностировать, что не так?
Дополнительно - обратите внимание, что catalina.err и catalina.out не были созданы.
Причина, по которой вы хотите это сделать, заключается в том, что (а) это виртуальная машина, работающая в блоке разработчика, и (б) она выполняет процесс в chroot-тюрьме, который будет запускаться только в случае выполнения root (c) процесс который запускается в chroot jail, представляет собой программный пакет, полученный из внешнего
Здесь задается вопрос - как бы вы отладили сценарий оболочки, чтобы увидеть, что происходит - для этого вы должны запустить его как:
sudo bash -x -v /etc/init.d/tomcat6 start
и прочтите вывод, чтобы узнать, что происходит.
На самом деле похоже, что Ubuntu настроен так, чтобы это было нелегко. Все каталоги принадлежат только пользователю tomcat6 (т. Е. Не пользователю root). Чтобы узнать, какие именно - запустите команду
find / -user tomcat6
Ради соблюдения намерений упаковщиков Ubuntu / Tomcat6 в целях безопасности - я не собираюсь публиковать то, что вы будете делать после этого.
Запуск Tomcat напрямую не более небезопасен, чем запуск любого другого сервера приложений.
Это больше связано с здравыми концепциями безопасности, которые сделают ваш ящик безопасным. Вам определенно следует использовать какой-то брандмауэр, особенно если ваш ящик открыт для публики.
Если ваше развернутое приложение небезопасно и уязвимо для SQL-инъекций, то даже самый дорогой контейнер сервлетов не спасет вас, у вас просто дрянной код.
Не запускайте tomcat6 от имени пользователя root. Я не могу представить, зачем вам это нужно / вы хотите это сделать, и если у вас есть «проблемы с разрешениями», то вы делаете это неправильно.
Я поддерживал (и продолжаю поддерживать) несколько серверов tomcat 5 и 6, работающих как их соответствующие пользователи tomcat, без проблем с развертыванием веб-приложений. Запуск серверов с правами root - слишком большая угроза безопасности, а зачастую и совершенно ненужная.
Если вы действительно хотите разобраться в этом, файлы catalina.out и catalina.err, вероятно, будут иметь больше информации, но я думаю, что запуск с правами root - потенциально смертельная идея, поэтому я бы, вероятно, оставил его как tomcat по умолчанию системный пользователь.