Ubuntu

使用非特權使用者在 Ubuntu 的 80 埠上執行 Resin (caucho.com)?

  • November 27, 2010

在不涉及代理、埠重定向、埠轉發等的情況下,是否有任何本機方法可以將Resin(Java 伺服器)綁定到 Ubuntu 伺服器上的埠 80,而 Resin 由 root 啟動,但隨後以非特權使用者身份執行( www-數據)?

這是在 Ubuntu 10.10 上,從 caucho apt 儲存庫執行 Resin。我知道如果我以 root 身份執行和操作 Resin,我可以讓它使用 80 埠,但正如你想像的那樣,這並不理想。

找到了答案,終端命令如下。這些命令假設你執行的是 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),並確保文件中的以下 2 行也未註釋:

www-數據 www-數據

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

現在啟動 Resin:

# service resin start

引用自:https://serverfault.com/questions/205616