2011-04-09 5 views
1

shell_exec 명령을 사용하여 학교용 유닉스 서버에 명령을 보내고 있습니다. 에코와 같은 일을 할 수 있지만 파일을 만들거나 삭제하는 것과 관련이있는 것은 작동하지 않습니다. 나는 shell_exec로 스크립트를 수행하고 실행하고자하는 명령을위한 스크립트를 만들 수 있다고 생각했지만, 매우 지루한 프로세스가이 이슈를 둘러싼 다른 방법이 있습니까 ??shell_exec on php

감사합니다.

답변

0

소리가 사용 권한 문제와 유사합니다. PHP 내에서 whoami을 실행하고 실행중인 사용자를 확인하십시오. 학교에서 SELinux와 같은 것을 사용하고 있다면 사용자/그룹/모드로 설정된 프로세스 이외의 프로세스에 대한 추가 제한 사항이 있습니다. 그러나 그것은 출발점입니다.

2

shell_exec()은 열어두기 만해도 명령을 실행하는 아주 나쁜 방법입니다. 누군가가 PHP 코드를 악용하거나 PHP 파일을 업로드하는 경우 서버가 훨씬 더 취약해질 수 있습니다. 대신 가능하다면 mkdir()fopen($file, '(r|a|w)+)과 같은 PHP 함수를 사용해야 파일이 존재하지 않는 경우 파일이 만들어집니다. 실제로 shell_exec(), exec(), pass_thru() 등을 코드에 남겨두면 모든 공격은 서버에서 쉘 명령을 실행할 수 있습니다.

이제 원래 질문과 관련하여 작업하려는 파일 및 디렉토리에 대한 권한을 확인 했습니까? PHP를 실행하는 사용자는 액세스하려는 파일 및 디렉토리에 대한 작업 권한이 있어야합니다. 확실하지 않은 경우 PHP에서 사용해야하는 파일과 디렉토리는 chmod 777입니다.