리눅스 환경에서 실무를 하다 보면 파일 권한(Permission) 문제로 곤란한 상황을 꽤 자주 마주하게 된다. 특정 계정으로 접속해 스크립트를 실행하거나 파일을 수정하려고 할 때, 야속하게도 명령어가 먹히지 않는 경우가 대표적이다.
이럴 때 가장 먼저 점검해야 할 것은 해당 파일의 소유자(Owner), 그룹(Group), 그리고 권한(Permission)이다. 오늘은 이 중에서 리눅스 파일 시스템 보안의 핵심이자 기본인 '파일 권한'에 대해 자세히 알아보겠다.
1. drwxr-xr-x 한눈에 해부하기
리눅스에서 명령어로 "ls -l"을 입력하면 맨 앞에 해당 파일에 대한 권한을 확인할 수 있다. 기본적으로 권한은 아래와 같이 구성되어 있다.
d | r w x | r - x | r - x
[①] [ ② ] [ ③ ] [ ④ ]
① 파일 타입 (File Type): 맨 앞 1글자는 이것이 파일인지 폴더인지 알려준다.
- d: 디렉토리 (Directory)
- -: 일반 파일 (File)
- l: 심볼릭 링크 (Link)
② 소유자 (User/Owner): 파일을 만든 '주인'이 가지는 권한입니다. (rwx= 읽고, 쓰고, 실행 가능)
③ 그룹 (Group): 소유자가 속한 '그룹' 멤버들이 가지는 권한입니다. (r-x= 읽고, 실행은 가능하지만 수정은 불가)
④ 기타 사용자 (Others): 주소와 그룹에 속하지 않은 '그 외 모든 사람'의 권한입니다. (r-x= 읽고, 실행만 가능)
2. 권한을 뜻하는 마법의 알파벳: r, w, x
각 구역에 들어가는 3개의 알파벳은 각각 고유한 의미와 '숫자 점수'를 가지고 있다. 권한이 없을 때는 하이픈(-)으로 표시된다. 그리고 각 기호마다 점수가 있는데 정리하면 아래 표와 같다.
| 기호 | 의미 | 설명 |
| r | Read (읽기) | 파일을 열어보거나, 디렉터리 목록을 볼 수 있음 / 4점 |
| w | Write (쓰기) | 파일을 수정하거나, 디렉터리에 파일을 생성/삭제할 수 있음 / 2점 |
| x | Execute (실행) | 파일을 실행하거나, 디렉터리에 접근(cd)할 수 있음 / 1점 |
| - | 권한 없음 | 해당 위치에 권한이 부여되지 않았음을 의미 |
예를 들어 chmod 명령어를 통해 파일 권한을 바꿀 수 있는데 chmod 775의 의미는 다음과 같다.
- rwx = 4 + 2 + 1 = 7 (모든 권한)
- rw- = 4 + 2 + 1 = 7 (모든 권한)
- r-x = 4 + 0 + 1 = 5 (읽기/실행 가능)
즉, 소유자와 같은 그룹의 계정은 모든 권한을 가지고 나머지는 읽기와 실행만 할 수 있음을 의미한다.
0 댓글