본문 바로가기

운영체제/리눅스, 유닉스

[리눅스] chmod 명령어(리눅스 파일권한 설정 명령어)

반응형
리눅스 파일권한 설정방법 - chmod명령어

리눅스(CentOS, ubuntu 등)에서 파일이나 디렉터리에 대한 접근권한을 설정하는 명령어로 chmod명령어가 있다.

알파벳 기호를 사용하는 문자모드, 8진수 값을 사용하는 숫자모드가 있다.


chmod [option] mode file



※ 권한 확인 방법

ls -all 명령어를 통해 파일의 권한을 확인할 수 있다.

r(읽기), w(쓰기), x(실행) 권한이고,

3칸씩 나누어 각각 소유자, 그룹, 일반사용자 이다.

▼ aaa.txt는 rwxr-xr--는 소유자(읽기,쓰기,실행)그룹(읽기,실행)일반사용자(읽기) 이다.




문자모드
문자모드는 설명이 직관적이며 숫자모드와는 달리 기존 권한을 유지한채 권한 추가, 삭제가 가능하다는 이점이 있다.


사용기호

구분

기호

설명

 권한

 읽기 

w

 쓰기

 실행

사용자

u

 소유자

g

 그룹

o

 일반 사용자(소유자, 그룹 외)

a

 모든 사용자(소유자,그룹,일반)

설정기호

+

 권한 추가(기존 권한을 유지한 채로 추가)

-

 권한 삭제(기존 권한에서 해당 권한만 삭제)

=

 권한 부여(기존 권한을 삭제하고 부여)


사용방법

chmod [사용자][설정기호][권한] 파일명


(예시)

chmod ug+r aaa.txt : aaa.txt파일에 대해 소유자와 그룹에 읽기권한을 추가한다.

chmod o-x aaa.txt : aaa.txt파일에 대해 일반 사용자에 실행권한을 삭제한다

chmod u=rw aaa.txt : aaa.txt파일에 대해 소유자에게 읽기,쓰기 권한을 부여한다.(기존권한 삭제)

chmod a+x aaa.txt : aaa.txt파일에 대해 모든사용자(소유자, 그룹, 일반)에 실행권한을 추가한다.


화면예시

▲ chmod a+x aaa.txt 결과, 모든 사용자에게 기존 권한은 유지된 채로 실행권한이 추가되었음





숫자모드

숫자모드는 문자모드에 비해 짧고 편리한(초심자는 이해가 어려우나 한번 이해 후에는 쉽게 사용할 수 있음) 명령어를 이용하기 때문에 대부분의 리눅스 관리자는 숫자모드를 이용한다.


사용기호는 0~7까지 8진수를 사용한다. 기본원리는 3비트 2진수를 8진수로 변환한 것인데,

첫번째 비트는 읽기, 두번째 비트는 쓰기, 세번째 비트는 실행이다.

아래표를 보면 이해하기 쉽다(이해를 위해 크기순으로 정렬하지 않았다)


3비트 2진수 표기

8진수 표기(실제표기)

권한

 000

 0

 권한없음

 100

 4

 읽기(첫번째 비트)

 010

 2

 쓰기(두번째 비트)

 001

 1

 실행(세번째 비트)

 011

 3

 쓰기(두번째 비트), 실행(세번째 비트)

 101

 5

 읽기(첫번째 비트), 실행(세번째 비트)

 110

 6

 읽기(첫번째 비트), 쓰기(두번째 비트)

 111

 7

 읽기, 쓰기, 실행(첫번째, 두번째 세번째 비트)


위의 방법외에도 읽기는 4, 쓰기는 2, 실행은 1을 각각 더해서 권한을 만든다고 생각하여도 무방하다.

읽기쓰기권한 : 6

읽기실행권한 : 5

읽기권한 : 4

쓰기실행권한 : 3



사용자 기호와 설정기호없이 자리수를 이용하여 표현한다. 

백의자리수는 소유자, 십의자리수는 그룹, 일의자리수는 일반사용자이다.

이또한 아래예시를 보면 쉽게 이해할 수 있다.(가지수가 많으므로 몇가지만 표기하겠다)

표기

소유자

그룹

일반사용자

754

7(읽기,쓰기,실행)

5(읽기,실행) 

4(읽기)

664

6(읽기,쓰기)

6(읽기,쓰기)

4(읽기)

444

4(읽기)

4(읽기)

4(읽기)

544

5(읽기,실행)

4(읽기)

4(읽기)




사용방법

chmod [소유자권한][그룹권한][일반사용자권한] 파일명


(예시)

chmod 766 aaa.txt : aaa.txt에 대해 소유자 권한(읽기,쓰기,실행), 그룹 권한(읽기,쓰기), 일반사용자(읽기,쓰기)로 변경한다.


화면예시

▲ chmod 644 aaa.txt사용한 결과, aaa.txt에 기존권한을 리셋하고 소유자 읽기쓰기, 그룹 읽기, 일반 읽기 권한으로 설정되었다.




주요옵션

옵션

설명

-R

하위디렉터리를 포함하여 디렉터리 내부의 모든파일의 접근권한을 변경

-c

변경된 정보를 출력

-f

중요한 오류메시지가 아니면 출력하지 않음






반응형