cgi 실행 권한 문제인가?
thttpd 를 설치했습니다.
데몬을 돌리는것 까지도 문제는 없는것 같습니다.
cgi-bin 디렉토리에 test.cgi 를 만들고 퍼미션을 +x 를 주었습니다.
test.cgi 내용은
#!/bin/sh
ifconfig
이렇습니다.
이렇게 하고 익스플로러에서 실행을 해보면,
아무 변화가 없습니다.
"cgi 파일을 못찾으면 못 찾는다"
"실행 할 수 없으면 실행할 수 없다"
라고 뿌리던 놈이 두가지 문제가 없으면(제대로 설정이 되면) 아무 반응을 안합니다.
이번엔 test.cgi를
#!/bin/sh
/sbin/ifconfig
라고 해보았습니다.
그리고 익스플로러에서 실행해보면,
제대로 찍혀 나옵니다.
캐리지리턴 없이 쭈~욱 일렬로 뿌려댑니다.
그렇다면 실행파일의 절대경로를 적어주면 실행을 한다는 얘긴데,
그것도 의심이 되는것이,
/sbin/ifconfig eth0
이렇게, 옵션을 넣은채 test.cgi를 고쳐주면,
이번엔 또다시 먹통이 됩니다.
결론은 실행파일을 절대경로 붙여서 넣어주면 실행은 되나,
뒤에 옵션이 붙으면 아무짓도 안한다는 겁니다.
또다른 테스트 프로그램 test2.cgi를 만들어 봤습니다.
#!/bin/sh
/bin/echo "ABCD"
이거 역시 아무 반응이 없습니다.
실행 가능하게 해서 뒤에 cgi 만 붙여주면,
실행 파일인줄 알고 실행을 해야 할 텐데,
꼼짝을 안하는게 이상합니다.
혹시 실행 권한 문제입니까?
권한을 nobody, nobody로 줘봤습니다.
그래도 마찬가지 이던데,.
의심할 부분이 또 있는지 좀 부탁드리겠습니다.
먼저 다음과 같은 헤더를 출력한후 해 보세요 :)[code:1
먼저 다음과 같은 헤더를 출력한후 해 보세요 :)
echo "Content-type: text/html\n\n"
음... busybox 의 httpd를 가지고 해봤는데...위의
음... busybox 의 httpd를 가지고 해봤는데...
위의 모든 경우에 대해서.. 잘 되는군요!!!
httpd가 무슨 권한을 가지고 실행되는지를 살펴봐야 하지 않을까요?
음... 감사합니다. 해결했습니다.
cgi를 웹에서 실행을 시킬때는, 반드시 사용자 인증을 거쳐야 하더군요.
사용자 인증이라...
보안 문제가 있기 때문에, "반드시"라는 문구를 무시하지 말았어야 했습니다.
.htpasswd 라는 파일을 cgi-bin에 넣어줬습니다.
물론 이 파일은 thttpd 컴파일 시 htpasswd 라는 바이너리 파일로, cgi 접근 계정과, 비밀번호를 생성해 주면, .htpasswd라는 파일로 암호화 되서 만들어지더군요.
이거 있으니까, 인증 거쳐서 cgi 실행 됩니다.
너무 기본적인걸 무시해서 생긴 삽질인듯 합니다.
답글 달아주셔서 감사합니다.
컴파일러는 절대 거짓말을 하지 않는다.
믿지 못하겠다고, 두번! 세번! 컴파일 하지 마라.
목에 핏대 세우고, 암만 눈 부라려봐야 항상 너의 참패로 끝나는 싸움이다.
굴복하고 컴파일러가 시키는대로 해라.
댓글 달기