[Linux] 리눅스 파일과 폴더의 권한 (Permission) 알아보기

윈도우 유저라면 처음 보면 헷갈릴 수 있는 리눅스권한 체계 (Permission)를 알아보자.

권한의 종류

권한에는 세 가지 종류가 있다.
  • 읽기 (read): 파일을 읽을 수 있는 권한
  • 쓰기 (write): 파일을 수정하거나, 쓰거나, 지울 수 있는 권한
  • 실행하기 (execute): 파일을 실행할 수 있는 권한


권한 보기

파일의 권한을 보려면 아래의 커맨드를 사용하면 된다.

ls -l
혹은 줄여서
ll


myStuff라는 폴더 안에 있는 파일들의 권한을 살펴보자.

cd /usr/fwantastic/myStuff
ls -l
drwxrwxrwx 1 user1 user2    4096 Jul 11 11:11 file1.txt
-rw-rw-r-- 1 user1 user2   76141 Jul 13 15:56 file2.txt
-rw-r--r-- 1 user1 user2  122769 Jul 14 10:55 file3.txt



권한 구성

권한은 총 10개문자로 구성되어 있고 네 개의 그룹으로 나뉜다.

1번째 문자

 - : 파일이란 표시
 d : 폴더/디렉토리라는 표시
 l : 링크라는 표시

2-4번째 문자

파일 주인의 읽기, 쓰기, 실행하기 권한

5-7번째 문자

파일 주인이 속한 그룹의 읽기, 쓰기, 실행하기 권한

8-10번째 문자

그 외 유저들의 읽기, 쓰기, 실행하기 권한


예제

 -rwxrw-r-- 를 예로 들어보자.

1번째 문자  - 파일이란 것을 알 수 있고,

2-4번째 문자  rwx 로 파일 주인이 읽기, 쓰기, 실행하기가 전부 가능한 것을 알 수 있고,

5-7번째 문자  rw- 로 파일 주인이 속한 그룹이 읽기와 쓰기가 가능한 것을 알 수 있고,

8-10번째 문자  r-- 로 파일 주인과 그룹 외에 사용자는 읽기만이 가능한 것을 알 수 있다.

한번 이해하면 쉬운 원리를 가지고 있다.



권한 변경

권한 변경chmod 커맨드를 사용한다. chmodchange mode의 약자이다.

사용 방법
chmod [변경하고자 하는 권한 값] [파일 혹은 디렉토리]


권한 고유 값

권한마다 부여된 고유 숫자가 있다.
  • r = 4
  • w = 2
  • x = 1


chmod 커맨드는 총 세 개숫자를 지정해줘야 하는데 하나의 숫자가 하나의 그룹을 대표한다. 이 그룹은 위의 권한 구성 섹션의 2-4번째 문자, 5-7번째 문자, 8-10번째 문자 를 뜻한다. 각 숫자는 r, w, x를 전부 더한 값이다.

예로 모든 그룹모든 권한을 부여하고 싶다면 r, w, x의 합인 7세 번 쓰면 된다.

예제 1 - file1.txt를 아무나 읽기/수정하기/실행하기가 가능하게 변경하기
chmod 777 /xxx/yyy/file1.txt


예제 2 - file1.txt를 파일 주인만 모든 권한을 가지고 나머지는 읽기 권한만 주기
chmod 744 /xxx/yyy/file1.txt