리눅스 파일 권한(퍼미션) 변경 - chmod

2017.06.07 07:00


파일 권한(퍼미션) 수정 - chmod


chmod 명령어는 파일이나 디렉토리에 부여된 권한(퍼미션)을 수정하는 명령어이다. 


chmod로 퍼미션을 수정하는 방법은 기호문자열을 사용하는 방법과 8진수 숫자를 사용하는 방법 두가지가 있다.


기호문자열을 사용하는 경우는 기존 권한 중 일부 권한을 더하거나 뺄 경우 많이 사용하고 숫자표기법은 파일의 권한 전체를 재설정할 때 많이 사용한다. 




chmod - 기호문자열 사용


어떤 대상에게 어떤 권한을 더할 것인지 문자로 설정




예를 들어 그룹(g)에게 실행 권한(x)을 더할(+) 경우 chmod g+x 파일명 형태를 사용한다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[test01@centos6 /home/test]$ls -l
합계 0
----------1 test01 test01 0 2017-06-04 12:29 a
----------1 test01 test01 0 2017-06-04 12:29 b
----------1 test01 test01 0 2017-06-04 12:29 c
----------1 test01 test01 0 2017-06-04 12:29 d
 
 
[test01@centos6 /home/test]$chmod g+rx a
[test01@centos6 /home/test]$ls -l a
----r-x---1 test01 test01 0 2017-06-04 12:29 a
' a파일을 그룹(g)에게 읽기(r), 실행(x) 부여  '
 
[test01@centos6 /home/test]$chmod u+rwx b
[test01@centos6 /home/test]$ls -l b
-rwx------1 test01 test01 0 2017-06-04 12:29 b
' b파일을 사용자(u)에게 읽기(r), 쓰기(w), 실행(x) 부여 '
 
[test01@centos6 /home/test]$chmod ug+w c
[test01@centos6 /home/test]$ls -l c
--w--w----1 test01 test01 0 2017-06-04 12:29 c
' c파일을 사용자(u)와 그룹(g)에게 쓰기(w) 부여'
 
 
[test01@centos6 /home/test]$chmod u=rx,g=r d
[test01@centos6 /home/test]$ls -l d
-r-xr-----1 test01 test01 0 2017-06-04 12:29 d
' d파일을 사용자(u)에게는 읽기(r)와 실행(x)을, 그룹(g)에게는 읽기(r) 부여'
 
 
[test01@centos6 /home/test]$chmod u=rwx,g=rx,o=r e
[test01@centos6 /home/test]$ls -l e
-rwxr-xr--1 test01 test01 0 2017-06-04 12:29 e
' e파일을 사용자(u)에게는 읽기(r) 쓰기(w) 실행(x)을, 
그룹(g)에게는 읽기(r) 실행(x) 부여, 기타(o)에게는 읽기(r) 부여
cs







chmod - 숫자표기법 사용


8진수로 표기하는 방법은 일단 rwx 세 자리를 각각 2진수로 표시한다. 


rwx는 111, 

r-x는 101, 

r--은 100, 

-w-는 010로 표시할 수 있다. 



이진수를 8진수로 각각 바꾸면 

111은 4+2+1=7, 

101은 4+0+1=5, 

100은 4+0+0=4, 

010은 0+2+0=2로 표현할 수 있다. 



chmod 숫자표기법은 이렇게 0부터 7에 해당하는 8진수의 조합을 사용자(u), 그룹(g), 기타(o)에 맞춰서 3자리의 숫자로 표기하는 것이다. 




숫자표기법으로 파일 권한을 표시하면 아래와 같다.


rwx rwx rwx = 777

rwx r-x r-x = 755

r-x r-x r-- = 554

rw- rw- r-- = 664

rw- --- --- = 600




chmod 명령을 사용하는 예는 아래와 같다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[test01@centos6 /home/test]$ls -l
합계 0
----r-x---1 test01 test01 0 2017-06-04 12:29 a
-rwx------1 test01 test01 0 2017-06-04 12:29 b
--w--w----1 test01 test01 0 2017-06-04 12:29 c
-r-xr-----1 test01 test01 0 2017-06-04 12:29 d
-rwxr-xr--1 test01 test01 0 2017-06-04 12:29 e
 
 
[test01@centos6 /home/test]$chmod 000 *
' 모든 파일(*)의 권한을 000으로 초기화'
 
 
[test01@centos6 /home/test]$ls -l
합계 0
----------1 test01 test01 0 2017-06-04 12:29 a
----------1 test01 test01 0 2017-06-04 12:29 b
----------1 test01 test01 0 2017-06-04 12:29 c
----------1 test01 test01 0 2017-06-04 12:29 d
----------1 test01 test01 0 2017-06-04 12:29 e
 
 
[test01@centos6 /home/test]$chmod 777 a
[test01@centos6 /home/test]$ls -l a
-rwxrwxrwx. 1 test01 test01 0 2017-06-04 12:29 a
' a파일에 모든 권한(777) 부여 '
 
 
 
[test01@centos6 /home/test]$chmod 664 b
[test01@centos6 /home/test]$ls -l b
-rw-rw-r--1 test01 test01 0 2017-06-04 12:29 b
' b파일에 사용자(u), 그룹(g)에게 읽기+쓰기(6)
  기타(o)에게 읽기(4) 부여 '
 
 
[test01@centos6 /home/test]$chmod 600 c
[test01@centos6 /home/test]$ls -l c
-rw-------1 test01 test01 0 2017-06-04 12:29 c
' c파일에 사용자(u)에게만 읽기+쓰기(6) 
cs



또루아빠 Linux, Unix , , , , , , , ,