Tomcatの権限の問題


9

Ubuntuのガイドに従ってTomcat 7をインストールしました。サーバーは動作しており、「動作します!」のページhttp://localhost:8080/

次に、Netbeansを使用して自分のWebアプリケーションをセットアップします。Java EE 6とTomcat 7 を使用して新しいWebプロジェクトを生成しました。ユーザーは/var/lib/tomcat7/conf/tomcat-users.xmlファイル上に正しく構成されています。

プロジェクトを実行するとすべてが問題ないように見えますが、ブラウザを開くと500エラーが表示されます

ファイルの権限:

lucio@lucio-pc:/$ ll /var/lib/tomcat7/logs
lrwxrwxrwx 1 root root 17 jul 24 18:07 /var/lib/tomcat7/logs -> ../../log/tomcat7/
lucio@lucio-pc:/$ ll /var/log/tomcat7/
total 136
drwxr-x---  2 tomcat7 adm      4096 ago 28 10:50 ./
drwxrwxr-x 15 root    syslog   4096 ago 28 09:29 ../
-rw-r--r--  1 tomcat7 tomcat7   800 ago 26 17:23 catalina.2014-08-26.log.gz
-rw-r--r--  1 tomcat7 tomcat7  5173 ago 27 21:59 catalina.2014-08-27.log
-rw-r--r--  1 tomcat7 tomcat7 31285 ago 28 10:36 catalina.2014-08-28.log
-rw-r--r--  1 tomcat7 root    44192 ago 28 10:36 catalina.out
-rw-r--r--  1 tomcat7 tomcat7    45 ago 26 16:19 localhost.2014-08-26.log.gz
-rw-r--r--  1 tomcat7 tomcat7     0 ago 27 11:15 localhost.2014-08-27.log
-rw-r--r--  1 tomcat7 tomcat7   433 ago 28 09:49 localhost.2014-08-28.log
-rw-r--r--  1 tomcat7 tomcat7  7435 ago 26 17:23 localhost_access_log.2014-08-26.txt
-rw-r--r--  1 tomcat7 tomcat7     0 ago 27 11:15 localhost_access_log.2014-08-27.txt
-rw-r--r--  1 tomcat7 tomcat7 15186 ago 28 09:58 localhost_access_log.2014-08-28.txt

ファイルにアクセスできない理由がわかりませんtomcat7。ユーザーとグループがファイルへのアクセス許可を持っていることがわかります。ファイルに対する特権を必要とするJVMのユーザーはいますか?

ここで説明したように、ファイルの所有権を変更してみましたが、まったく変更されません。


/etc/default/tomcat7ファイルがあります:

TOMCAT7_USER=tomcat7
TOMCAT7_GROUP=tomcat7

したがって、tomcat7ユーザーとして実行されていると思います。


ユーザーをtomcat7グループに追加しました:

sudo usermod -aG tomcat7 $USER

その後、マシンを再起動しましたが、問題は解決しません。


tomcatはtomcat7ユーザーとして実行されていますか?
muru、2014

それはあまりにも長い間、私はTomcatを使用するのでされていますが、2つのことは私に発生します。Doはないあなたは、プログラムがログにアクセスできるようにtomcat7グループにする必要がありますか?また、それは本当にの一時ファイルにアクセスしたいよう/var/lib/tomcat7/tempです。それは存在しますか?同じ権限の問題である可能性があります。多分あなたはあなた自身をtomcat7グループに加える必要があるだけです。
Marty Fried

また、私のアイデアを使用するには、ファイルグループを書き込み可能にする必要があります。そして、ここに役立つかもしれない詳細情報があります。
マーティ揚げ

tomcat7を実行するユーザー(人間またはアプリケーション)には、/ var / lib / tomcat7 /、特にログフォルダーにアクセスする権限がないようです。
MickyInTheSky 2014

回答:


9

ここで2つの問題に気づきました。

エラーログの2行が目立ちました。

SEVERE: Cannot find specified temporary folder at /var/lib/tomcat7/temp  

そして:

java.io.FileNotFoundException: /var/lib/tomcat7/conf/tomcat-users.xml (Permission denied)

Lucio少し診断を行ったところ、tomcat-users.xmlファイルの所有者はTomcatではなく、Tomcatであることがわかりましたroot。次のコマンドを実行して、権限を適切なものに変更します。

sudo chown tomcat7:tomcat7 /var/lib/tomcat7/conf/tomcat-users.xml

また、次の/var/lib/tomcat7/tempようにtomcat権限を持つフォルダを作成します。

sudo mkdir /var/lib/tomcat7/temp && sudo chown -R tomcat7:tomcat7 /var/lib/tomcat7/temp

最後に、ログの修正は/var/lib/tomcat7/logstomcat7ユーザー/グループが所有するようにして行う必要があります。/var/log/tomcat7/またによって所有されなければならないtomcat7ユーザとグループ。


私にとっては、tomcat-user.xmlファイルの権限を変更するだけで十分でした。ログに対して同じことを行ってもうまくいきませんでしたが、アプリケーションはとにかく実行されています:-)
Lucio
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.