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


10

Tomcat7インスタンスがtomcat7(またはその他の)ユーザーとして実行されていることを確認するための推奨される方法は何ですか?

上部に「su tomcat7」を変更tomcat7-instance/bin/startup.shtomcat7-instance/bin/shutdown.shて追加できると思います。

Tomcat6では、環境変数だったと思いますTOMCAT6_USER


あなたが「安全な方法」を求めているなら、おそらく議論を引き起こすでしょう。ここで、「tomcat7に別のユーザーを設定する方法は?」それは答えられます。あなたはdebパッケージをインストールした場合これまで私が覚えているように、ユーザのtomcatとところで、Tomcatの開始..
Braiam

回答:


13

最も一般的な方法は、以下を使用して標準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

TOMCAT7_USERとTOMCAT7_GROUPは私が探していたものでした。おかげで
エイドリアンBer

tomcat7-instance / bin / setenv.shのTOMCAT7_USERを変更してサーバーを起動しました。しかし、psを使用してプロセスを表示する場合、ユーザーはTOMCAT7_USERで指定されたものではありません。
エイドリアン・バー2013年

で直接変更してみません/etc/default/tomcat7か?
David Levesque 2013年

2つのTomcatユーザーインスタンスがあり、それらを別々のユーザーとして起動したいとします。
Adrian Ber 2013年

これは私がよく知らないシナリオですが、この場合、Tomcatをサービスとして実行できず、上記の構成は適用されません。たぶん、それについて別の質問をする必要があります。
David Levesque 2013年

11

編集:以下のコメントを読んでください!このソリューションは、すべての状況に適用できるわけではありません。

受け入れられた答えは素晴らしいですが、私は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ユーザーのホームフォルダーが変更されるのを回避できます。


あなたの答えには大きな問題があります。次のtomcat7パッケージのアップグレード(セキュリティ修正/バグ修正)で、aptが同じユーザー(tomcat7)を使用して新しいtomcat7パッケージバージョンを再度インストールするため、セットアップが失敗します。そのため、無人アップグレードを行うことはできず、各アップグレード後に忘れずに移行する必要があります。
user323094 2015

そのことに気づかなかったし、今のところ良い解決策もない。何か提案がありますか?
stenix 2015

Tomcat9にはそのようなファイルはありません。
ステファン2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.