ปัญหาการอนุญาตกับ Tomcat


9

ผมติดตั้ง Tomcat 7 ต่อไปนี้คู่มืออูบุนตู เซิร์ฟเวอร์ใช้งานได้และให้ฉันว่า "ใช้งานได้!" http://localhost:8080/หน้า

ตอนนี้ฉันต้องการตั้งค่า webapp ของตัวเองโดยใช้ Netbeans ฉันสร้างโครงการเว็บใหม่ด้วย Java EE 6 และ Tomcat 7 ผู้ใช้อยู่ใน/var/lib/tomcat7/conf/tomcat-users.xmlไฟล์ที่กำหนดค่าอย่างเหมาะสม

เมื่อผมทำงานทุกอย่างดูเหมือนว่าโครงการ ok แต่เมื่อเปิดเบราว์เซอร์จะแสดงข้อผิดพลาด 500

  • เอาท์พุท Tomcatกล่าวถึงข้อผิดพลาดที่ได้รับอนุญาตพยายามเข้าถึงtomcat7/logsและ
  • บันทึก IDEtomcat7/confพยายามที่จะเข้าถึง

สิทธิ์ของไฟล์:

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

มันนานมากแล้วนะตั้งแต่ผมใช้คราว แต่ 2 สิ่งที่เกิดขึ้นกับผม: อย่าคุณจะต้องอยู่ในกลุ่ม tomcat7 เพื่อให้โปรแกรมที่จะเข้าถึงบันทึกหรือไม่ และยังดูเหมือนว่าจริงๆมันต้องการเข้าถึงไฟล์ temp ใน/var/lib/tomcat7/temp; มีอยู่จริง อาจเป็นปัญหาการอนุญาตเดียวกัน บางทีคุณอาจต้องเพิ่มตัวคุณเองลงในกลุ่ม tomcat7
Marty ผัด

นอกจากนี้คุณจะต้องทำให้กลุ่มไฟล์เขียนได้เพื่อใช้ความคิดของฉัน และมีข้อมูลเพิ่มเติมที่นี่ที่อาจช่วยได้
Marty ผัด

ดูเหมือนว่าผู้ใช้ (มนุษย์หรือแอปพลิเคชัน) ที่รัน tomcat7 ไม่มีสิทธิ์ในการเข้าถึง / var / lib / tomcat7 / และโดยเฉพาะอย่างยิ่งโฟลเดอร์บันทึก
MickyInTheSky

คำตอบ:


9

ฉันสังเกตเห็นปัญหาสองข้อที่นี่

สองบรรทัดในบันทึกข้อผิดพลาดโดดเด่นสำหรับฉัน:

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 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/logsเป็นเจ้าของโดยtomcat7ผู้ใช้ / กลุ่ม /var/log/tomcat7/ก็ควรจะเป็นเจ้าของโดยtomcat7ผู้ใช้และกลุ่ม


สำหรับฉันแล้วการเปลี่ยนการอนุญาตในtomcat-user.xmlไฟล์ก็เพียงพอแล้ว การทำเช่นเดียวกันกับบันทึกไม่ทำงาน แต่แอปพลิเคชันทำงานอยู่แล้ว :-)
Lucio
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.