2015-02-02 18 views
6

Tôi đã tạo một tên miền phụ mới và đã tải tệp WAR lên thư mục của nó, nhưng máy chủ trả về lỗi sau.Không thể tạo lỗi thư mục

java.io.IOException: Unable to create the directory[/home/jack/public_html/WAR/MYWAR] 
..... 

Việc cho phép các thư mục WAR và tập tin WAR là 0755.

drwxr-xr-x 4 jack jack  4096 Feb 2 02:43 ./ 
drwxr-xr-x 10 jack nobody  4096 Jan 25 01:48 ../ 
drwxr-xr-x 2 jack jack  4096 Jan 24 22:38 cgi-bin/ 
-rwxr-xr-x 1 jack jack 82135738 Feb 2 02:23 MYWAR.war* 
drwxr-xr-x 4 jack jack  4096 Jan 25 01:31 WEB-INF/ 

ps -aux | grep tomcat

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ 
root  1239 0.0 0.0 103240 864 pts/2 S+ 04:38 0:00 grep tomcat 
root  1330 0.0 0.0 10436 352 ?  Ss Feb01 0:00 jsvc.exec -user tomcat -cp ./bootstrap.jar -Djava.endorsed.dirs=../common/endorsed -outfile ../logs/catalina.out -errfile ../logs/catalina.err -verbose org.apache.catalina.startup.Bootstrap start 
tomcat 1334 0.2 14.9 1566688 151852 ?  Sl Feb01 1:38 jsvc.exec -user tomcat -cp ./bootstrap.jar -Djava.endorsed.dirs=../common/endorsed -outfile ../logs/catalina.out -errfile ../logs/catalina.err -verbose org.apache.catalina.startup.Bootstrap start 
+0

Và người dùng nào đang chạy chương trình này và chủ sở hữu của thư mục phía trên nơi thư mục được tạo? – armnotstrong

+0

Tôi có thể tìm hiểu về những điều đó ở đâu? – Jack

+0

ps aux | grep 'tên chương trình', cho dir chỉ' ls -al' – armnotstrong

Trả lời

5

0755 là rwxr-xr-x. Nếu bạn không phải là chủ sở hữu của thư mục (nó là người dùng không có người dùng), bạn không thể viết trong thư mục. Bạn cần phải là chủ sở hữu của thư mục hoặc gốc để viết ở vị trí đó.

+0

Cảm ơn, vậy làm thế nào để giải quyết vấn đề? Tôi chỉ cần cập nhật các câu hỏi – Jack

+0

ls -l sẽ cho bạn thấy perms và chủ sở hữu trên hộp linux –

+0

lẽ sudo chmod g w the_directory_in_which_you_want_write' +? (nếu bạn chỉ ở trong nhóm của chủ sở hữu thư mục: tốt hơn để chỉ cho phép nhóm đó trên toàn thế giới) – Hastur

1

Chúng tôi cần đảm bảo rằng Tomcat có quyền truy cập đầy đủ vào các thư mục. Đầu tiên xác định người dùng hoặc nhóm Tomcat đang chạy. Tiếp theo, cấp quyền sở hữu cho người dùng và/hoặc nhóm đó. Ví dụ đoạn mã sau sẽ thay đổi quyền sở hữu của thư mục kiểm tra thư mục và tất cả mọi thứ dưới nó:

sudo chown -R owner:group /home/blabla/test 

này sẽ cung cấp cho các chủ sở hữu và nhóm sở hữu để thực hiện lệnh. http://www.computerhope.com/unix/uchown.htm

Tiếp theo chúng ta sử dụng chmod cấp phép trong đó xác định quyền cho chủ sở hữu của tập tin ("người dùng"), thành viên của nhóm những người sở hữu tập tin ("nhóm")

http://www.computerhope.com/unix/uchmod.htm

+0

Cảm ơn, vui lòng đọc nhận xét của tôi, tôi đã thêm tomcat vào một nhóm và truy cập đầy đủ vào nhóm nhưng nó vẫn chưa giải quyết được vấn đề. – Jack

+0

@Jack Không thể tạo thư mục "/ home/jack/public_html/WAR/MYWAR". Tôi nghi ngờ của bạn "MYWAR" dir đã tồn tại và do đó không tạo ra nó một lần nữa. Nếu đúng như vậy, trước tiên hãy xóa thư mục MYWAR. – ZakiMak

+0

Không có nó không chỉ có một tập tin MYWAR.war trong thư mục. – Jack

2

thử:

sudo chown -R tomcat:tomcat /home/jack/public_html/ 

lẽ bạn không cần phải thay đổi cho toàn bộ public_html, nhưng bạn có thể thử để xem nếu nó hoạt động, và sau đó hạn chế quyền truy cập vào e mong muốn của bạn lớn hơn.

1

có vẻ như bạn cần phải

cho nhóm truy cập đầy đủ ghi vào thư mục WAR

sudo chmod 775 /home/jack/public_html/WAR/ 

sau đó thay đổi nhóm của thư mục tomcat

chown -R jack:tomcat /home/jack/public_html/WAR/ 
1

Nếu cho phép, người dùng và nhóm là chính xác. Có lẽ câu trả lời là selinux.

Các vấn đề liên quan