Tomcat7をtomcat7(または他の)ユーザーとして実行する

Tomcat7をtomcat7(または他の)ユーザーとして実行する

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 を実行しているため、すべてを実行するためにいくつか追加の作業を行う必要がありました。

  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. 設定ファイルを読み取り可能にします。ここでは 2 つのオプションがあります。次の方法で新しいユーザーを tomcat7 グループに追加します。

    sudo usermod -a -G tomcat7 newuser

    ...または、設定ファイルの所有権を変更します。

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

  8. ログ ファイルや構成ファイルなど、Web アプリがアクセスしている他のファイルがある場合は、それらのファイルの所有権も変更する必要があります。

  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 ユーザーのホーム フォルダーが変更されるのを防ぐことができます。

関連情報