Apache 서버 용 모듈을 개발 중입니다. 그 안에서,/tmp/_clusterMemberName/stat (const char * filename, struct stat * buf) 함수를 사용하여 경로에서 파일을 읽으려고합니다. 내 문제는 경로에 파일이 존재하더라도 -1을 반환하는 stat() 함수입니다. 파일 위치를 /tmp/_clusterMemberName/에서 /opt/으로 변경하면 stat() 함수가 정상적으로 작동합니다. 이유를 찾도록 도와주세요.파일이 존재하더라도 stat()가 -1을 반환하는 이유 [RHEL 7.2]
1
A
답변
0
가장 큰 이유는 /tmp
에 액세스 할 수 없다는 것입니다.
stat
에 의해 반환 된 errno 값을 확인해야합니다. EACCES
인 경우 사용자에게 /tmp
에 대한 액세스 권한이 없다는 것입니다. EPERM
인 경우 SELinux 정책에 따라 httpd가 /tmp
에 액세스하지 못하게 될 수 있습니다. SELinux를 사용하는 경우 httpd_selinux
맨 페이지를 알고 있어야합니다.
/tmp
-
httpd
액세스 활성화 할 수 있습니다
:
setsebool httpd_tmp_t 1
을하고 합계를 (전화 후
setsebool -P httpd_tmp_t 1
에 지속적인 변화를 만드는) 값의 errno는이 무엇인지 찾아서 맞는 있는지 확인 stat에 대한 맨 페이지의 사례 중 하나. –