강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터2급강좌 : 파일권한 바꾸기(chmod)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터2급강좌 : 파일권한 바꾸기(chmod)

chmod(파일 권한 바꾸기)

 

 

chmod는 특정 파일 또는 디렉토리의 주어진 퍼미션(permission)을 변경할 때 사용하는 명령어이다.

 

 

 

 

그리고 상기한 내용을 정확하게 이해했다면 chmod로 퍼미션을 설정하는 방법을 알게 된 것이다.

 

 

 

 

 

 

명령어의 형식은 다음과 같다.

 

 

 

 

 

 

chmod [옵션] [--옵션] [모드] [파일]

chmod [옵션] [--옵션] [8진수 모드] [파일]

 

 

 

 

 

 

 

우선 다음과 같이 chmod와 함께 사용할 수 있는 옵션들을 살펴보자. 파일 권한을 설정할 때에는 디렉토리 하위의 파일들을 모두 변경하는 -R 옵션 이외에는 옵션을 사용하는 일이 드물다.

 

 

 

옵 션

설 명

-c, --changes

올바르게 변경된 파일들만 v 옵션을 적용하여 자세히 보여준다.

-f, --silent, --quite

가능한 한 불필요한 메시지를 보여주지 않고 간략하게 보여준다.

-v, --verbose

실행 과정을 자세하게 보여준다.

-r, --recursive

디렉토리와 그 안에 존재하는 서브디렉토리까지 모두 적용한다.

--help

사용 가능한 옵션들과 사용법을 보여준다.

--version

현재 버전 정보를 보여준다.

 

 

chmod 명령으로 파일의 퍼미션을 설정하는 방법에는 8 진수의 숫자로 지정하는 방법(절대 모드 지정 방법)과 특정 문자를 이용한 방법(상대 모드 지정 방법)의 두 가지가 있다.

 

 

 

 

 

1) 절대 모드 지정 방법

첫 번째는 8 진수의 숫자로 퍼미션을 지정하는 방법이다.

 

 

 

 

상기한 바와 같이 각각의 퍼미션을 8 진수의 0번부터 7번까지의 숫자로 기술할 수 있는데, 읽기는 4, 쓰기는 2 그리고 실행은 1인데, 이들이 모두 없으면 0이고 이들을 모두 더하면 7이며 이들 숫자를 조합하여 더하면 파일에 대한 퍼미션이 정해진다.

 

 

 

 

그리고 이 숫자들은 파일의 소유자 권한, 그룹소속자 권한 및 일반 다른 사용자 권한의 순서로 기술하면 각각에 대한 권한이 설정된다.

 

 

 

 

, 100단위, 10단위 및 1단위의 위치에 각각의 권한을 설정할 수 있다.

 

 

 

절대 모드 지정 방법

접근 주체

허가

접근 유형

절대 모드 지정

파일 소유자

읽기

r

400

쓰기

w

200

실행

x

100

그룹 소속자

읽기

r

40

쓰기

w

20

실행

x

10

일반 다른 사용자

읽기

r

4

쓰기

w

2

실행

x

1

 

다음은 퍼미션 755로 설정(파일 소유자에게 읽기쓰기실행, 그룹 소속자에게 읽기실행, 일반 다른 사용자에게 읽기실행 권한을 부여)되어 있었던 test1 파일의 퍼미션을 chmod 명령어를 이용하여 511으로 설정(파일 소유자에게 읽기실행, 그룹 소속자에게 실행, 일반 다른 사용자에게 실행 권한을 부여)을 변경한 것이다.

 

 

 

 

 

 

 

 

 

 

[root@SUK121 ~]# ls -l test1

-rwxr-xr-x 1 root root 15 920 16:55 test1

[root@SUK121 ~]# chmod 511 test1

[root@SUK121 ~]# ls -l test1

-r-x--x--x 1 root root 15 920 16:55 test1

[root@SUK121 ~]#

 

 

 

 

 

2) 상대 모드 지정 방법

 

두 번째는 특정 문자를 이용한 퍼미션 설정 방법이다.

 

 

 

 

먼저 특정 문자(u(파일 소유자), g(그룹 소속자), o(일반 다른 사용자), a(모두))로 접근 주체를 지정하고, 다음으로 어떻게 실행할 것인지에 대한 실행자(+(권한 부여), -(권한 제거), =(권한 유지))를 지정한 후에, 읽기, 쓰기, 실행 등 권한에 해당하는 문자(r(읽기), w(쓰기), x(실행), s(SetUID 또는 SetGID 설정) )를 지정하여 퍼미션을 설정한다.

 

 

 

상대 모드 지정 방

실행자

의미

접근 주체

의미

+

권한 부여

u

파일 소유자

-

권한 제거

g

그룹 소속자

=

권한 유지

o

일반 다른 사용자

s

SetUID 또는 SetGID 설정

a

모두

 

 

 

다음은 test1에 설정된 퍼미션을 확인하고 그룹 소속자에게 실행 권한 외에 읽기와 쓰기 권한을 추가로 부여한 것이다.

 

 

 

 

 

 

 

[root@SUK121 ~]# ls -l test1

-r-x--x--x 1 root root 15 920 16:55 test1

[root@SUK121 ~]# chmod g+rw test1

[root@SUK121 ~]# ls -l test1

-r-xrwx--x 1 root root 15 920 16:55 test1

[root@SUK121 ~]#

 

 

 

 

 

 

다음은 모든 접근 주체에 대해 실행 권한을 제거한 것이다.

 

 

 

 

 

 

 

[root@SUK121 ~]# ls -l test1

-r-xrwx--x 1 root root 15 920 16:55 test1

[root@SUK121 ~]# chmod a-x test1

[root@SUK121 ~]# ls -l test1

-r--rw---- 1 root root 15 920 16:55 test1

[root@SUK121 ~]#

 

 

 

 

 

절대 모드와 상대 모드의 지정 방식 비

 

파일\사용자 범주

소유자

그룹

타인

소유자

그룹

타인

원래 권한 상태

rwx

r-x

r-x

7

5

5

chmod g+rw 파일

rwx

rwx

r-x

7

7

5

chmod g-rx+w 파일

rwx

-w-

r-x

7

2

5

chmod a-r,g-x 파일

-wx

---

--x

3

0

1

chmod 521 파일

r-x

-w-

--x

5

2

1

chmod 745 파일

rwx

r--

r-x

7

4

5

chmod 427 파일

r--

-w-

rwx

4

2

7

 

SetUID, SetGID 스티키 비트(Sticky bit)8 진수 숫자로 표기하는 퍼미션 방식에서 설명한 일반 퍼미션 앞에 각각 4, 2, 1의 숫자를 붙여서 설정한다.

 

 

 

 

, 1000단위에 4, 2, 1로 하여 절대 모드 지정 방식으로 설정이 가능하다.

 

 

 

 

이 설정을 해제할 때에는 0으로 하여 설정하면 된다.

 

 

 

 

이들은 간단하게 정리하면 다음과 같다.

 

특수 목적 접근 모드

코드

비트명

절대 모드 방법

의미

t

sticky bit

1000

파일의 소유자만 삭제가능 설정

s

SetGID(Set Group ID)

2000

프로세스 실행 당시 GID로 설정

s

SetUID(Set User ID)

4000

프로세스 실행 당시 UID로 설정

 

그리고 소유자와 그룹에 대해 s 문자를 더하는 방식(u+s, g+s ug+s)으로 SetUIDSetGID를 설정할 수 있고, t 문자를 더하는 방식(+t 또는 o+t)으로 스티키 비트를 설정할 수 있다.

 

 

 

 

해제를 위해서는 + 대신 를 기술하여 설정하면 된다.

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  221 명