← 문제 라이브러리
Linux 중급 LINUX-031 · 21분

백업에서 웹 콘텐츠를 복원했더니 모든 페이지가 403

웹 서버 디스크 장애로 /var/www/html을 백업에서 복원했습니다.

검수된 문제무료
시나리오

웹 서버 디스크 장애로 /var/www/html을 백업에서 복원했습니다. 백업은 예전에 스테이징 서버에서 rsync -aAX로 만든 것이고, 복원도 같은 옵션으로 했습니다. 복원 뒤 모든 페이지가 403 Forbidden입니다. 파일 권한은 644, 디렉터리는 755로 문제없어 보이고 소유자도 맞습니다. 담당자는 권한이 부족한 것 같다며 chmod -R 777 을 해 보자고 합니다. 홈페이지와 고객 공지 페이지가 모두 막혀, 고객센터로 사이트가 안 열린다는 문의가 들어오기 시작했습니다. 복원 작업은 다른 서버에서 몇 번 해 본 절차 그대로 했습니다.

단서
httpd 오류 로그
AH00132: file permissions deny server access: /var/www/html/index.html
ls -lZ /var/www/html | head -2
-rw-r--r--. 1 root root unconfined_u:object_r:user_home_t:s0 5120 Sep 20 index.html
drwxr-xr-x. 2 root root unconfined_u:object_r:user_home_t:s0   48 Sep 20 assets
sudo ausearch -m AVC -ts recent
type=AVC msg=audit(...): avc:  denied  { read } for  pid=2210 comm="httpd" name="index.html" scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file permissive=0

과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.

먼저 볼 것
  • 파일 모드와 SELinux 라벨은 서로 다른 접근 통제다
  • 복원 방법이 라벨까지 옮기는지
점검 체크리스트
  1. ls -Z 로 파일의 SELinux 타입
  2. ausearch -m AVC 로 거부 기록
  3. restorecon -n -v 로 바로잡힐 목록을 먼저 확인