학습 목표
파일과 디렉터리 권한을 변경하기 전에 소유자, 그룹, 접근 대상을 먼저 설계하는 방법을 학습합니다.
권한 관리는 chmod 숫자를 외우는 작업이 아니라, 누가 어떤 경로에 접근해야 하는지 정리하는 작업입니다.
왜 chmod부터 치면 위험한가
장애 상황에서 급하게 chmod -R 777을 적용하면 당장은 접근 문제가 사라질 수 있습니다.
하지만 모든 사용자가 읽기, 쓰기, 실행을 할 수 있게 되므로 운영 서버에서는 보안 사고로 이어질 수 있습니다.
권한 문제는 항상 “소유자”, “그룹”, “파일 타입”, “실행 필요 여부” 순서로 봐야 합니다.
1) 소유자와 그룹부터 정하기
chown -R appuser:appgrp /srv/app chown
chown은 파일이나 디렉터리의 소유자와 그룹을 변경하는 명령어입니다.
여기서 appuser:appgrp는 소유자를 appuser, 그룹을 appgrp로 설정한다는 의미입니다.
운영에서는 애플리케이션 파일을 root가 계속 소유하게 두지 않는 경우가 많습니다. 서비스 계정이 읽어야 할 파일은 서비스 계정 기준으로 소유권을 정리해야 합니다.
-R 옵션
-R은 하위 경로까지 재귀적으로 적용합니다.
편리하지만 위험합니다. 잘못된 경로에 적용하면 많은 파일 권한이 한 번에 바뀝니다. 운영에서는 적용 전 pwd와 대상 경로를 반드시 확인합니다.
2) 디렉터리와 파일 권한 분리
find /srv/app -type d -exec chmod 750 {} ;
find /srv/app -type f -exec chmod 640 {} ; find -type d
find /srv/app -type d는 /srv/app 아래의 디렉터리만 찾습니다.
디렉터리는 들어가기 위해 실행 권한이 필요합니다. 그래서 파일과 같은 기준으로 권한을 주면 접근 문제가 생길 수 있습니다.
chmod 750
750은 소유자는 읽기/쓰기/실행, 그룹은 읽기/실행, 기타 사용자는 접근 불가라는 의미입니다.
운영 디렉터리는 보통 아무나 들어오지 못하게 제한합니다.
find -type f
find /srv/app -type f는 일반 파일만 찾습니다.
일반 설정 파일이나 문서 파일은 실행 권한이 필요하지 않습니다.
chmod 640
640은 소유자는 읽기/쓰기, 그룹은 읽기, 기타 사용자는 접근 불가입니다.
설정 파일을 보호하면서 서비스 그룹에는 읽기 권한을 줄 때 자주 쓰는 형태입니다.
3) 실행 파일만 별도 적용
chmod 750 /srv/app/bin/*.sh 스크립트 파일은 실행 권한이 필요합니다.
하지만 모든 파일에 실행 권한을 주면 보안상 좋지 않습니다. 실행되어야 하는 파일만 골라 권한을 부여하는 것이 원칙입니다.
신규직원 실습 절차
소유자와 그룹 기준을 먼저 정합니다.
디렉터리와 일반 파일 권한을 분리 적용합니다.
실행 파일은 별도로 관리합니다.
서비스 계정 기준으로 실제 접근 테스트를 합니다.
연계실습
연계실습 텍스트: 파일·디렉터리 권한 표준값 적용
실습 바로 시작: 문제 214 실습 시작하기 →
연계 실습
이 글에서 다룬 내용을 직접 명령어로 쳐 보면 훨씬 오래 남습니다.
리눅스마스터 실기 권한 문제 연습 →
파일·권한 명령어 실습 코스 →

아직 댓글이 없습니다. 궁금한 점이나 풀이 경험을 남겨 보세요.