[Linux Cent OS 7] 'You don't have permission to access..' 403 Error 해결법

이태우·2023년 12월 20일

403 Error

Forbidden
You don't have permission to access...

리눅스로 정적 페이지(Apache)를 띄우려고 하다보면, 403 에러를 마주칠때가 있다.
특히나 필자는 어떤 파일은 정상 작동 하지만, 어떤 파일은 403에러가 떠서 페이지를 띄우지 못 했었다.

404 Error

이는 분명 경로를 찾지 못해 발생하는 404 에러와는 다르다.

403 Error

경로는 찾았지만, 어떠한 이유로 인하여 접근을 금지(Forbidden)하고 있는 것이다.

기본 구조

가장 먼저는 /var/www/html로 파일을 이동시킬 것이다.

별다른 설정을 하지 않았다면,
Apache의 기본 Root 경로가 /var/www/html 설정되어 있을 것이기 때문

오늘의 html 타겟은 'join_sub.html'이라는 아이를 띄울 것이다.

해결방법

1. 파일에 대한 권한 수정

 ls -l /var/www/html/파일명

가장 먼저 파일명에 대해 어떠한 계정이 어떤 권한을 가지고 있는지 확인해야 한다.

terry라는 계정에 r(읽기), w(쓰기) 권한이 주어져 있는것을 알수 있다.
사실 이 정도면 충분하다. 이미 r(읽기) 권한이 있기 때문

chmod 644 /var/www/html/파일명

그래도 혹시모르지 한번 더 해준다.

2. SELinux(셀리눅스) 설정 변경

그래서 필자는 셀리눅스 보안 설정을 바꿔주었다.

셀리눅스가 해당 html로의 접근을 막고 있을수도 있기 때문이다.

셀리눅스를 비활성화도 해보고, 여러 방법을 해봤지만 이 방법이 가장 효과적이었다.

chcon -v --type=httpd_sys_content_t /var/www/html/join_sub.html

이렇게 되면 'changing security..'라는 메시지가 뜨면서 보안 설정이 바뀌게 된다.
이제 다시 접속을 해보자

단순히 외부 html만 가져온 것이라 페이지가 온전하게 뜨지는 않지만,
html이 정상적으로 띄워지게 된다.
결국 셀리눅스가 접근을 막고있던 것이었다.

profile
햇병아리 개발자

0개의 댓글