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
設定ファイルを読み取り可能にします。ここでは 2 つのオプションがあります。次の方法で新しいユーザーを tomcat7 グループに追加します。
sudo usermod -a -G tomcat7 newuser
...または、設定ファイルの所有権を変更します。
sudo chown -R :newgroup /var/lib/tomcat7/conf/*
ログ ファイルや構成ファイルなど、Web アプリがアクセスしている他のファイルがある場合は、それらのファイルの所有権も変更する必要があります。
- これで、新しいユーザーでサービスを再度起動する準備がすべて整いました。
編集 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 ユーザーのホーム フォルダーが変更されるのを防ぐことができます。