Ubuntu
使用非特權使用者在 Ubuntu 的 80 埠上執行 Resin (caucho.com)?
在不涉及代理、埠重定向、埠轉發等的情況下,是否有任何本機方法可以將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