Masalah izin dengan kucing jantan

9

Saya menginstal Tomcat 7 mengikuti panduan Ubuntu . Server berfungsi dan memberi saya "Berhasil!" halaman aktif http://localhost:8080/.

Sekarang saya ingin mengatur aplikasi web saya sendiri menggunakan Netbeans. Saya membuat Proyek Web baru dengan Java EE 6 dan Tomcat 7. Pengguna berada di /var/lib/tomcat7/conf/tomcat-users.xmlfile yang dikonfigurasi dengan benar.

Ketika saya menjalankan proyek semuanya tampak ok, tetapi ketika saya membuka browser itu menampilkan 500 kesalahan .

  • The Tomcat keluaran menyebutkan kesalahan izin coba akses tomcat7/logsdan
  • The IDE log coba akses tomcat7/conf.

Izin file:

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

Saya tidak mengerti mengapa tidak dapat mengakses file, Anda dapat melihat bahwa pengguna dan grup tomcat7memiliki izin ke file. Apakah ada pengguna untuk JVM yang membutuhkan hak istimewa atas file?

Saya juga mencoba mengubah kepemilikan file seperti yang disebutkan di sini tetapi tidak berubah sama sekali.


The /etc/default/tomcat7berkas memiliki:

TOMCAT7_USER=tomcat7
TOMCAT7_GROUP=tomcat7

Jadi saya kira itu berjalan sebagai tomcat7pengguna.


Saya menambahkan pengguna saya ke tomcat7grup:

sudo usermod -aG tomcat7 $USER

Dan kemudian me-restart mesin, tetapi masalahnya tetap ada.

Lucio
sumber
Apakah tomcat berjalan sebagai pengguna tomcat7?
muru
Sudah terlalu lama sejak saya menggunakan tomcat, tetapi 2 hal terjadi pada saya: Tidakkah Anda harus berada dalam grup tomcat7 untuk mengizinkan program mengakses log? Dan juga, sepertinya benar-benar ingin mengakses file temp /var/lib/tomcat7/temp; apakah itu ada Mungkin masalah izin yang sama. Mungkin Anda hanya perlu menambahkan diri Anda ke grup tomcat7.
Marty Fried
Anda juga perlu membuat grup file dapat ditulis untuk menggunakan ide saya. Dan ada informasi lebih lanjut di sini yang mungkin bisa membantu.
Marty Fried
Tampaknya pengguna (manusia atau aplikasi) yang menjalankan tomcat7 tidak memiliki izin untuk mengakses / var / lib / tomcat7 / dan terutama folder log.
MickyInTheSky

Jawaban:

9

Saya perhatikan ada dua masalah di sini.

Dua baris dalam log kesalahan menonjol bagi saya:

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

dan:

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

Melakukan sedikit diagnosa dengan Lucio , saya menemukan bahwa tomcat-users.xmlfile tersebut bukan milik Tomcat, tetapi sebaliknya root. Ubah izin menjadi yang benar dengan menjalankan perintah:

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

Juga, buat folder /var/lib/tomcat7/tempdengan izin kucing jantan, seperti:

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

Akhirnya, memperbaiki log harus dilakukan dengan membuat /var/lib/tomcat7/logsdimiliki oleh tomcat7pengguna / grup. Ini /var/log/tomcat7/juga harus dimiliki oleh tomcat7pengguna DAN grup.

Kaz Wolfe
sumber
Bagi saya, mengubah izin pada tomcat-user.xmlfile sudah cukup. Melakukan hal yang sama untuk log tidak berfungsi tetapi aplikasi tetap berjalan :-)
Lucio