Vấn đề về quyền với tomcat


9

Tôi đã cài đặt Tomcat 7 theo hướng dẫn Ubuntu . Máy chủ đang hoạt động và cung cấp cho tôi "Nó hoạt động!" trang trên http://localhost:8080/.

Bây giờ tôi muốn thiết lập ứng dụng web của riêng mình bằng Netbeans. Tôi đã tạo một Dự án Web mới với Java EE 6 và Tomcat 7. Người dùng trên /var/lib/tomcat7/conf/tomcat-users.xmltệp được cấu hình đúng.

Khi tôi chạy dự án, mọi thứ có vẻ ổn, nhưng khi tôi mở trình duyệt thì nó hiển thị lỗi 500 .

  • Đầu ra Tomcat đề cập đến các lỗi cho phép cố gắng truy cập tomcat7/logs
  • Nhật ký IDE cố gắng truy cập tomcat7/conf.

Quyền truy cập tệp:

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

Tôi không hiểu tại sao không thể truy cập các tệp, bạn có thể thấy rằng người dùng và nhóm tomcat7có quyền đối với các tệp. Có người dùng nào cho JVM cần đặc quyền đối với các tệp không?

Tôi cũng đã thử thay đổi quyền sở hữu tập tin như được đề cập ở đây nhưng nó không thay đổi gì cả.


Các /etc/default/tomcat7tập tin có:

TOMCAT7_USER=tomcat7
TOMCAT7_GROUP=tomcat7

Vì vậy, tôi đoán nó đang chạy như tomcat7người dùng.


Tôi đã thêm người dùng của mình vào tomcat7nhóm:

sudo usermod -aG tomcat7 $USER

Và sau đó khởi động lại máy, nhưng vấn đề vẫn tồn tại.


Là tomcat chạy như người dùng tomcat7?
muru

Đã quá lâu kể từ khi tôi sử dụng tomcat, nhưng 2 điều xảy ra với tôi: Đỗ không bạn cần phải được trong các nhóm tomcat7 để cho phép các chương trình để truy cập các bản ghi? Ngoài ra, có vẻ như nó thực sự muốn truy cập một tệp tạm thời /var/lib/tomcat7/temp; cái đó có tồn tại không? Nó có thể là vấn đề cho phép tương tự. Có lẽ bạn chỉ cần thêm mình vào nhóm tomcat7.
Marty Fried

Ngoài ra, bạn sẽ cần phải làm cho nhóm tệp có thể ghi được để sử dụng ý tưởng của tôi. Và có nhiều thông tin ở đây có thể giúp đỡ.
Marty Fried

Có vẻ như người dùng (người hoặc ứng dụng) chạy tomcat7 không có quyền truy cập / var / lib / tomcat7 / và đặc biệt là thư mục nhật ký.
MickyInTheSky

Câu trả lời:


9

Tôi nhận thấy hai vấn đề ở đây.

Hai dòng trong nhật ký lỗi nổi bật với tôi:

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

và:

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

Làm một chút chẩn đoán với Lucio , tôi phát hiện ra rằng tomcat-users.xmltập tin này không thuộc sở hữu của Tomcat, mà thay vào đó root. Thay đổi quyền cho đúng bằng cách chạy lệnh:

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

Ngoài ra, tạo thư mục /var/lib/tomcat7/tempvới quyền tomcat, như vậy:

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

Cuối cùng, việc sửa các bản ghi nên được thực hiện bằng cách /var/lib/tomcat7/logssở hữu bởi tomcat7người dùng / nhóm. Cũng /var/log/tomcat7/nên được sở hữu bởi tomcat7người dùng VÀ nhóm.


Đối với tôi, thay đổi quyền trên tomcat-user.xmltệp là đủ. Làm tương tự với các bản ghi không hoạt động nhưng ứng dụng vẫn chạy :-)
Lucio
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.