Запустите Resin (caucho.com) на порту 80 в Ubuntu, используя непривилегированного пользователя?

Без использования прокси или перенаправления портов, переадресации портов и т. Д., Существует ли какой-либо собственный метод привязки Resin (Java-сервера) к порту 80 на сервере Ubuntu, в то время как Resin запускается root, но затем работает как непривилегированный пользователь (WWW-данные)?

Это на Ubuntu 10.10, на котором запущен Resin из репозитория caucho apt. Я знаю, что если я запускаю и использую Resin как root, я могу использовать порт 80, но, как вы можете себе представить, это не идеально.

1 ответ

Решение

Нашел ответ, терминал см ниже. Эти команды предполагают, что вы используете Ubuntu 10 и установили Resin через репозитории apt. В моем случае www-data будет работать с authbind с идентификатором пользователя 33, который вы увидите ниже:

# aptitude install authbind
# nano -w /etc/authbind/byuid/33
# chown www-data. /etc/authbind/byuid/33
# chmod 700 /etc/authbind/byuid/33
# nano -w /etc/init.d/resin

При редактировании /etc/init.d/resin найдите:

start)

Ниже этого найдите:

su $USER

Удалить эту строку, заменить на:

su $USER -s /usr/local/bin/authbind --deep /bin/bash -c """$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS start""" 1>/dev/null 2>/dev/null

Найти:

stop)

Ниже этого найдите:

su $USER

Удалить эту строку, заменить на:

su $USER -s /bin/bash -c """$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS shutdown""" 1>/dev/null 2>/dev/null

Запишите файл и выйдите (используйте CTRL+O, CTRL+X)

Теперь вам нужно отредактировать смолу конфигурации:

# nano -w /etc/resin/resin.xml

Убедитесь, что ваш порт HTTP установлен на 80 (я полагаю, что это по умолчанию, так как Resin по умолчанию работает как rot), и убедитесь, что следующие 2 строки также не закомментированы в файле:

www-data www-data

Сохранить и выйти (CTRL+O, CTRL+X)

Теперь начните Resin:

# service resin start
Другие вопросы по тегам