2012-02-04 5 views
1

작성중인 디렉토리에 대해 "실행"권한을 허용하지 않으면 쓰기 위해 파일을 열 수 없습니다. 이상하게 보입니다. "쓰기"권한이 충분하지 않은 이유는 무엇입니까?왜 PHP는 파일을 쓰려면 "실행"권한이 필요합니까?

매우 간단한 fopen, fputcsv 루프, fclose 시퀀스입니다. 그 디렉토리의 파일들로 끝내고있는 것은 없습니다.

기본 설정 -를 CentOS, 아파치, PHP

감사

+4

CentOS를 사용하고 있기 때문에 SELinux (http://en.wikipedia.org/wiki/Security-Enhanced_Linux)와 관련이 있습니다. – summea

답변

1

SELinux와 함께 할 수도 있습니다. 기본적으로 SELinux는 프로세스 및 데몬이 수행 할 수있는 작업을 제어합니다. 일반 사용자/그룹 권한을 뛰어 넘는 일종의 경계 시스템입니다. 세분화 된 제어에 도움이 될 수 있지만 때로는 방해가 될 수 있습니다.

해제 할 수있는 방법이 있습니다 (http://linuxconfig.org/how-to-disable-selinux 참조).

그러나 장기적으로 더 나은 설정 (세부 사항 : http://sheltren.com/stop-disabling-selinux 참조)을 미세 조정할 수있는 방법이 있습니다. CentOS에 묶여 있지 않다면 다른 배포판을 사용해 볼 수도 있습니다.

편집 :이 아래 코멘트에 언급 sepp2k로, SELinux를 함께 할 수없는 경우

또한, 당신은 "이 권한 실행"섹션에서 살펴 봐야 할 수 있습니다 Wayne Pollock의 this file and directory reference guide에 있습니다.

+2

이것은 SELinux와 아무 관련이 없습니다. 실행 권한이없는 디렉토리에서는 파일을 작성, 수정 또는 읽을 수 없습니다. 그것은 정상적인 행동입니다. – sepp2k

+0

이런 유형의 질문과 같은 것이 최근에 여기 SO ... (http://stackoverflow.com/questions/8998743/rhel-php-writing-files-outside-var-www-html/8998776) 및 (http://stackoverflow.com/questions/9056628/php-cant-write-outside-of-the-document-root-no-matter-what/9059696) 아마 내가 틀렸어. 뿐만 아니라 자신의 답변을 게시 할 다치게하지 않습니다. – summea

+0

http://content.hccfl.edu/pollock/AUnix1/FilePermissions.htm (실행 권한 섹션) 그 가능성을 반영하여 내 대답을 편집했습니다. – summea

2

"실행 권한 ("검색 비트 "라고도 함)을 사용하면 디렉토리의 파일에 액세스하여 cd 명령과 같이 입력 할 수 있습니다. source - 파일 사용 권한에 대한 토론