[완료] php의 내장 함수 exec 실행안되는 문제

lattente의 이미지

예전에 올렸던 글이 미해결상태로 남아있어서 정리하여 다시 도움 구합니다. ㅠㅠ

<?
$rt=exec("ls");
echo $rt;
?>

이런식으로 코딩된 php 파일이 있습니다. 웹에서 이녀석 접근하면 아무결과도 안뱉습니다.

아예 exec가 실행이 안되는거죠. 위의 코드는 예를 든것으로 다른 어떤 명령어도 마찬가지

입니다. php함수도 passthru, system, proc_open, 등등 실행관련 함수는 다 똑같은 결과가

나오구요. 실행할 명령어의 권한쪽에는 문제가 없는듯합니다.

그런데 같은 세팅의 다른 웹서버에서는 정상적으로 실행이 됩니다.

두 서버는 nfs로 연결되어있기 때문에 웹서비스 root 파일은 똑같다고 보시면 됩니다.

두 서버는 같은 os, php, apache, php.ini, httpd.conf 를 사용합니다. -_-;

다른 확인 방법이나 확인해봐야할 설정을 아시는 분은 도움 주시면 정말 감사하겠습니다.

그럼 이만 꾸벅 ㅠㅠ

lattente의 이미지

해결하고 나니 비슷한 문제로 고민하시는 분이 없을듯하지만 -_-; 자답 올립니다.

문제는 결국 /bin/bash 의 퍼미션 문제였는데... 이번에 제 멍청함과 기초지식 부족에 정말 치를떨었습니다.

예~~전에 보안상의 이유로 여러가지 명령어들 퍼미션을 기본 퍼미션과 다르게 설정할때 저걸 건드리고 몰랐던 겁니다. Orz

퍼미션이 755가 디폴트인걸로 알고있는데 750 으로 되어있더군요 -_-;

php에서 사용하는 exec 함수가 결국엔 쉘에서 사용하는 exec 인가보네요... 쉘의 퍼미션이 그대로라면

당연히 nobody 계정에서는 실행이 안되는것을 여태 모르고 있었네요... 에혀-

암튼 해결했지만, 스스로의 멍첨함에 어이상실 상태입니다.

그럼 이만 정신을 좀 추스리고 진행못하던 작업을 진행해야겠네요;;;