티스토리 뷰
반응형
개인용 서버를 구매하고 CentOS를 서버용 호스트 운영체제로 올린 후 얼마지나지 않아 일어난 일이다. Apache httpd를 올려서 웹 서버를 구축하는데 루트 디렉토리는 잘 뜨는데 사용자별 디렉토리를 설정하고 사용자 계정으로 접속하니 다음과 같이 퍼미션 오류가 나는 것이다.
/etc/httpd 디렉토리의 log를 까보니 다음과 같은 에러 메세지를 뱉는다.
[Tue May 13 18:37:58 2014] [error] [client 192.168.0.1] (13)Permission denied: access to /~uyu423/ denied (filesystem path '/home/uyu423') because search permissions are missing on a component of the path
안타깝게도 디렉토리 권한 설정이나 httpd.conf 설정에도 문제가 없었다. httpd.conf에서 사용자별 디렉토리 설정은 활성화 되어있었고, 사용자 홈 디렉토리의 권한은 711, public_html의 권한 역시 755로 잘 잡혀 있었다. 문제는 CentOS의 SELinux boolean 값이었다. SELinux는 리눅스 운영체제의 보안 솔루션이라 생각하면 된겠다. 우선 위 문제를 해결하기 위해서 터미널에서 아래 명령어로 값을 확인해 보자.
# getsebool -a | grep httpd_enable_homedirs
잡았다 요놈. 요놈이 off 상태면 httpd.conf 에서 사용자별 디렉토리를 설정했더라도 막상 접속해보면 퍼미션 오류가 나타나는 것이었다. 다음 명령어로 httpd_enable_homedirs 를 on 해주면 httpd의 사용자별 디렉토리 권한 문제가 해결된다.
# setsebool -P httpd_enable_homedirs on
물론 SELinux 기능을 아예 off 하는 방법도 있겠지만 서버로 사용하는 리눅스라면 추천하지 않는다. 차라리 SELinux 내에서 불 필요한 보안 옵션을 해제하는 것이 좋다.
반응형
'내맘대로 > 내맘대로리눅스' 카테고리의 다른 글
리눅스에 Realtek RTL8723BE 드라이버 설치 잘 못한 이야기 (1) | 2014.06.28 |
---|---|
우분투 리눅스에서 구글 드라이브 연동, 사용하기 (10) | 2014.06.21 |
우분투 Failed to start session 문제 해결 & 하위 버전 패키지 설치 (0) | 2014.05.16 |
우분투 14.04 LTS 한글 이슈 및 그놈 쉘 설치 문제 정리 (5) | 2014.05.13 |
우분투 설치 직후 APM (Apache2, PHP, MySQL) 바로 설치 (4) | 2014.03.01 |
오픈수세(OpenSUSE) 리눅스에서 phpMyAdmin 설치 (4) | 2014.01.31 |
오픈수세(OpenSUSE) 리눅스에서 MySQL(MariaDB) 설치 (0) | 2014.01.29 |