Запустите 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