티스토리 뷰

반응형

리눅스(Linux)는 하나의 컴퓨터를 여러 사람이 사용할 수 있는 멀티유저 운영체제(OS)이기 때문에 권한 관리가 매우 중요합니다. 파일과 디렉토리의 권한을 변경하고 소유권을 변경하는 방법을 알아보겠습니다. 보안에 중요한 내용이기 때문에 리눅스 관리자가 되려면 정확하게 이해하고 넘어가는 것이 좋습니다.


리눅스 파일, 디렉토리 권한 확인하기

리눅스 ls 명령어 파일 권한 확인

ls -l 명령을 사용하여 파일, 디렉토리 리스트를 출력하면 권한(퍼미션, 허가권)을 확인할 수 있습니다.


-rwxr-xr-x 1 pi pi 5720 Jul  3 20:06 a.out

-rw-r--r-- 1 pi pi  722 Jul  2 21:12 crontab.bak

-rw-r--r-- 1 pi pi   52 Jul  2 21:10 test.c


출력 결과는 각각 파일종류 및 권한(퍼미션), 링크수, 사용자(소유자), 그룹, 파일크기, 수정시간, 파일이름을 나타냅니다.


-rwxr-xr-x 1 pi pi 5720 Jul  3 20:06 a.out


파일의 권한은 '-rwxr-xr-x'으로 확인할 수 있고

소유권은 'pi pi'으로 확인할 수 있습니다.

앞에 있는 pi는 사용자를 나타내고, 뒤에 있는 pi는 그룹을 나타냅니다.

(리눅스에서는 기본적으로 사용자와 동일한 이름의 그룹을 만듭니다.)


-    rwx    r-x    r-x 

위 정보는 4부분으로 나눌 수 있습니다.


-  파일(-), 디렉토리(d)를 구분

rwx  사용자(owner, 소유자) 권한(퍼미션)

r-x  그룹(group) 권한

r-x  다른 사용자(other) 권한


rwx는 각각 읽기(read), 쓰기(write), 실행(execute) 권한을 나타냅니다.

(참고로 디렉토리의 경우 실행권한이 있어야 디렉토리에 들어갈 수 있습니다.)


-rwxr-xr-x 1 pi pi 5720 Jul  3 20:06 a.out 

위 정보의 권한 부분만 해석하면

 a.out은 파일(-)이다. 

사용자가 읽고 쓰고 실행(rwx)할 수 있고, 그룹과 다른 사용자는 읽고 실행(r-x)할 수 있다. 

사용자(소유자)는 pi이고 그룹도 pi이다.




파일 권한 변경 (chmod 명령어 사용법)

파일, 디렉토리의 권한을 변경하기 위해서는 chmod 명령어를 이용해야합니다. chmod 명령은 다양한 방식으로 파일 권한을 변경할 수 있는데 그 방법을 정리해봅니다.


개별적으로 파일 권한 변경하기

리눅스 파일 권한 변경 chmod 명령어 사용법

chmod g+w test.c

그룹에 쓰기 권한을 준다.

chmod o-r test.c

다른 사용자에게 읽기 권한을 빼앗는다.


위와 같은 방식으로 사용자, 그룹, 다른사용자를 구분하여 권한을 지정합니다. u 사용자, g 그룹, o 다른사용자, a 전부에게 권한을 지정할 수 있고, 더하기(+)를 사용하여 권한을 추가하고, 빼기(-)를 사용하여 권한을 제거할 수 있습니다.


다른 사용 예

chmod u+x file.txt 

소유자에게 실행권한을 부여한다.

chmod g+rwx file.txt

그룹에 읽기, 쓰기, 실행 권한을 준다.

chmod go+r file.txt

그룹과 다른 사용자에게 읽기 권한을 준다.


숫자로 한번에 권한 변경하기 

리눅스를 자주 사용하는 사람에게는 위와 같은 방식이 번거롭게 느껴집니다. 그래서 숫자를 활용하여 사용자, 그룹, 다른 사용자의 권한을 한번에 지정할 수 있습니다.

리눅스 chmod 명령어 사용법 정리

chmod 000 test.c

사용자, 그룹, 다른사용자의 모든 권한을 제거한다.

chmod 777 test.c

사용자, 그룹, 다른사용자의 모든 권한을 추가한다.

chmod 700 test.c

사용자에게만 모든 권한을 준다.

chmod 744 test.c

사용자에게는 모든 권한을 주고, 그룹, 다른 사용자에게는 읽기 권한만 준다.


744라는 숫자는 이렇게 해석할 수 있습니다.


사용자

r w x

4 + 2 + 1 = 7


그룹

r - - 

4


다른 사용자

r - - 

4


읽기는 4, 쓰기는 2, 실행은 1로 나타내며 필요한 권한을 더해서 지정할 수 있습니다.

(2진수 비트 계산이라 4, 2, 1의 형식을 띠고 있습니다.)




파일 소유권 변경 (chown 명령어, 루트 사용자만 가능)

리눅스 chmod 명령어는 파일, 디렉토리의 권한(퍼미션, 허가권)을 변경하는 역할을 합니다. 반면 chown 명령을 사용하면 파일, 디렉토리의 사용자, 그룹을 변경할 수 있습니다. 쉽게말해 파일의 소유권을 변경하는 것입니다.

리눅스 chown chgrp 명령어 사용 파일 소유권 변경

sudo chown user01 a.out

chown 명령으로 파일을 사용자(소유자)를 user01로 변경한다.


sudo chgrp user01 test.c

chgrp 명령으로 파일의 그룹을 user01로 변경한다. 

그룹만 변경할 때 chgrp 명령어를 사용한다.

일반 사용자는 자신이 속한 그룹으로만 변경이 가능하다.


sudo chown user02.user02 crontab.bak

chown 명령으로 파일의 사용자와 그룹동시에 변경한다.


리눅스 chown 디렉토리 권한 변경

sudo chown user01 tmp/

디렉토리의 사용자(소유자)를 변경한다.


sudo chown -R user01 tmp/

-R 옵션을 사용하면 디렉토리와 그 안에 들어있는 모든 파일의 사용자를 변경한다.



반응형
댓글