2012-09-06 2 views
2

web.xml에서 CGI 모듈을 활성화하고 context.xml에 previleged = true를 추가했습니다. 응용 프로그램의 WEB-INF/cgi/폴더에 cgi 파일을 저장했습니다. 아래 URL에 액세스하려고하면 "error = 13, Permission denied"오류가 발생합니다. (통해 http : // localhost : 8080/귀여운/CGI-빈/cutecgi.cgi는)Tomcat6을 사용하여 Linux에서 C 컴파일 된 .cgi 파일을 실행할 때 "error = 13, Permission denied"오류가 발생합니다.

致命的: サーブレット cgi のServlet.service()が例外を投げました 
    java.io.IOException: Cannot run program "/var/lib/tomcat6/webapps/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cute/WEB-INF/cgi/cutecgi.cgi" (in directory "/var/lib/tomcat6/webapps/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cute/WEB-INF/cgi"): java.io.IOException: error=13, Permission denied 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) 
    at java.lang.Runtime.exec(Runtime.java:593) 
    at java.lang.Runtime.exec(Runtime.java:431) 
    at org.apache.catalina.servlets.CGIServlet$CGIRunner.run(CGIServlet.java:1649) 
    at org.apache.catalina.servlets.CGIServlet.doGet(CGIServlet.java:592) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:865) 
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) 
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555) 
    at java.lang.Thread.run(Thread.java:662) 
    Caused by: java.io.IOException: java.io.IOException: error=13, Permission denied 
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:148) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:65) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:453) 
    ... 21 more 
. 

답변

3

이것은 당신의 CGI 스크립트의 파일 권한에 문제처럼 보인다. Tomcat 서버가 실행중인 사용자가 파일에 액세스 할 수 없거나 파일 자체에이 사용자에 대한 실행 권한이 없습니다.

는 파일 사용 권한을 보려면이 명령을 실행 해보십시오 :

ls -l /var/lib/tomcat6/webapps/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cute/WEB-INF/cgi/cutecgi.cgi 
+0

이 내가 그 명령을 실행있어 결과 -rw-RW-r-- 사용. 1 user001 user001 21380 9 6 09:41 /var/lib/tomcat6/webapps/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cute/WEB-INF/cgi/cutecgi.cgi – Rodex

+0

정보 주셔서 감사합니다 .... 나는 cutecgi.cgi에 대해 chmod를 755로 바 꾸었습니다. 지금 작동 중입니다. 고맙습니다. @codebox – Rodex

+0

cutecgi.cgi 파일을 실행할 수 없으므로 오류가 설명되어 있습니다. chmod 명령 (예 : chmod 755 cutecgi.cgi)을 사용하여 실행 권한을 추가해야합니다. 단, tomcat 서버를 실행중인 사용자에게만이 권한을 부여해야하거나 보안 문제가 발생할 수 있습니다. – codebox

관련 문제