2014-10-07 4 views
0

crontab을 통해 실행되는 스크립트를 만들어야합니다. 가상 머신에 새로운 우분투를 설치하고 테스트를 시작했습니다.UBUNTU 14에서 PHP에 쓰기 권한을 부여하면 file_put_contents가 작동하지 않습니다.

그래서 터미널에서 스크립트를 실행할 때 PHP가/var/www/html/폴더에 파일을 쓰지 않음을 깨달았습니다 (sudo php filename.php)

명령에서 sudo를 제거하면 권한이 거부되었다고 표시됩니다. 나는 또한 ../html/ 안에 다른 폴더를 만들려고했는데 chmod 777도 시도했다. 아무 것도 작동하지 않는 것 같다. 몇 년 전에이 문제를 보았지만 어떤 해결책도 찾을 수 없습니다.

어떤 일이 일어나고 있는지 알고 계십니까?

답변

0

PHP 실행 파일을 검사하여 setuid 권한으로 인해 PHP가 sudo로 지정한 수퍼 유저 권한을 삭제하게되는지 확인하십시오.

당신이 웹 서버를 통해 이것을 실행하지 않는다는 것을 알고 있지만, 다른 사람들의 이익을 위해서 나는 높은 권한으로 PHP를 실행하는 것이 너무 무섭다는 것을 알게되었습니다. 내가 정말로 위험한 것을해야한다면, 가능한 한 적은 코드로 격리시키고 suid root를 가진 펄 스크립트로 코드화한다. (아니, 공유 호스팅에서이 작업을 수행 할 수 없습니다.) 그런 다음 PHP에서 perl로 이동합니다. 이 경우 perl은 자동으로 오염 모드로 실행되어 계속 진행하기 전에 모든 입력을 정제해야합니다. (이 기술은 2001 년 경부터 더 좋은 방법이 될 수 있습니다.)

... Tom Robinson

+0

나는 스크립트를 테스트하기 위해이 코드를 사용합니다. 그것은 프로덕션 환경이 아닙니다. 나는 그것을 시도 할 것이다. 나는 모든 것을 다시 설치하고있다. –