在 Ubuntu 的 80 端口上运行 Resin(caucho.com),使用非特权用户?

在 Ubuntu 的 80 端口上运行 Resin(caucho.com),使用非特权用户?

如果不涉及代理、端口重定向、端口转发等,是否有任何本机方法可以绑定Resin(Java 服务器)到端口 80,在 Ubuntu 服务器上,而 Resin 由 root 启动,但随后作为非特权用户 (www-data) 运行?

这是在 Ubuntu 10.10 上,从 caucho apt 存储库运行 Resin。我知道如果我以 root 身份运行和操作 Resin,我可以让它使用端口 80,但你可以想象,这并不理想。

答案1

找到答案,下面的终端命令。这些命令假设您正在运行 Ubuntu 10,并且已通过其 apt 存储库安装了 Resin。在我的例子中,www-data 将运行 authbind,用户 ID 为 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 形式运行),并确保文件中的以下两行也取消注释:

www-数据 www-数据

保存并退出(CTRL+O、CTRL+X)

现在启动 Resin:

# service resin start

相关内容