確保 Tomcat7 實例以 tomcat7(或任何其他)使用者身分執行的建議方法是什麼?
我想我可以修改tomcat7-instance/bin/startup.sh
並tomcat7-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,所以我需要做一些額外的事情才能讓一切運行:
- 編輯文件之前需要停止tomcat服務
/etc/default/tomcat7
。一旦更改使用者和群組,將無法再使用舊用戶停止服務。 更改文件中的使用者和群組
/etc/default/tomcat7
您需要更改資料夾
/var/log/tomcat7
及其所有文件的所有權。請注意,保留 adm 群組是一個優點,以便所有 adm 使用者都可以讀取日誌。sudo chown -R newuser:adm /var/log/tomcat7
更改資料夾的所有權
/var/lib/tomcat7/webapps
sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps
如果在 Ubuntu 14.04 上的連接埠 80/443 上執行,您需要變更 authbind 檔案的所有權:
sudo chown newuser /etc/authbind/byport/80
sudo chown newuser /etc/authbind/byport/443
更改工作資料夾的所有權
sudo chown newuser:adm /var/cache/tomcat7
sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina
使設定檔可讀。這裡您有兩個選擇: 透過以下方式將新使用者新增至 tomcat7 群組:
sudo usermod -a -G tomcat7 newuser
...或更改設定檔的所有權:
sudo chown -R :newgroup /var/lib/tomcat7/conf/*
如果您的網頁應用程式正在存取其他檔案(例如日誌檔案設定檔等),那麼您還需要更改這些檔案的所有權。
- 現在,一切都應該準備就緒,可以為新用戶再次啟動服務了。
編輯 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 使用者更改主資料夾。