以 tomcat7(或任何其他)使用者身分執行 Tomcat7

以 tomcat7(或任何其他)使用者身分執行 Tomcat7

確保 Tomcat7 實例以 tomcat7(或任何其他)使用者身分執行的建議方法是什麼?

我想我可以修改tomcat7-instance/bin/startup.shtomcat7-instance/bin/shutdown.sh在頂部添加“su tomcat7”。

在Tomcat6中我認為是環境變數TOMCAT6_USER

答案1

最常見的方法是安裝標準tomcat7套件apt-get並使用以下命令啟動它:

sudo service tomcat7 start

預設使用者和群組的配置/etc/default/tomcat7如以下摘錄所示:

# Run Tomcat as this user ID. Not setting this or leaving it blank will use the
# default of tomcat7.
TOMCAT7_USER=tomcat7

# Run Tomcat as this group ID. Not setting this or leaving it blank will use
# the default of tomcat7.
TOMCAT7_GROUP=tomcat7

答案2

編輯:請閱讀下面的評論!該解決方案可能並不適用於所有情況。

接受的答案很好,但由於我在 Ubuntu 14.04 上運行 Tomcat 7,所以我需要做一些額外的事情才能讓一切運行:

  1. 編輯文件之前需要停止tomcat服務/etc/default/tomcat7。一旦更改使用者和群組,將無法再使用舊用戶停止服務。
  2. 更改文件中的使用者和群組/etc/default/tomcat7

  3. 您需要更改資料夾/var/log/tomcat7及其所有文件的所有權。請注意,保留 adm 群組是一個優點,以便所有 adm 使用者都可以讀取日誌。

    sudo chown -R newuser:adm /var/log/tomcat7

  4. 更改資料夾的所有權/var/lib/tomcat7/webapps

    sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps

  5. 如果在 Ubuntu 14.04 上的連接埠 80/443 上執行,您需要變更 authbind 檔案的所有權:

    sudo chown newuser /etc/authbind/byport/80

    sudo chown newuser /etc/authbind/byport/443

  6. 更改工作資料夾的所有權

    sudo chown newuser:adm /var/cache/tomcat7

    sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina

  7. 使設定檔可讀。這裡您有兩個選擇: 透過以下方式將新使用者新增至 tomcat7 群組:

    sudo usermod -a -G tomcat7 newuser

    ...或更改設定檔的所有權:

    sudo chown -R :newgroup /var/lib/tomcat7/conf/*

  8. 如果您的網頁應用程式正在存取其他檔案(例如日誌檔案設定檔等),那麼您還需要更改這些檔案的所有權。

  9. 現在,一切都應該準備就緒,可以為新用戶再次啟動服務了。

編輯 2:升級到 tomcat 8 和 Ubuntu 18.04 後,以其他使用者身分執行 tomcat 時出現另一個問題。在腳本中,/etc/init.d/tomcat8以下行似乎更改了 tomcat 用戶的主資料夾,但如果您使用不同的用戶,結果不是您想要的。

usermod --home /var/lib/tomcat8 $TOMCAT8_USER > /dev/null 2>&1 || true

透過刪除或註解掉這一行,您可以避免為新的 tomcat 使用者更改主資料夾。

相關內容