파일의 권한을 변경하는 명령어

사용법 : chmod [옵션] 모드 파일명 
모드 : 새로운 모드(permissions) 
파일명 : 모드를 변경하고 싶은 파일 이름 
-c, --changes : 변경된 파일들에 대한 정보를 보여준다. 
-f, --silent, --quiet : chmod로 변경되지 않는 파일에 대한 에러를 보여주지 않는다. 
--help : 도움말을 보여준다. 
-R, --recursive : 하위 디렉토리에 있는 모든 디렉토리/파일에 대해 적용 변경한다. 
--reference=filename : 지정한 파일을 참조하여 퍼미션을 변경한다. 
-v, --verbose : 각 파일에 대해 변경에 대한 정보나 변경되지 않은 정보를 상세히 보여준다. 
--version : 버전정보를 보여준다. 

chmod 명령어는 파일이나 디렉토리를 새로운 권한으로 변경하는 명령어이다. 파일의 소유자나 시스템 관리자만이 chmod를 사용할 수 있으며 파일의 소유자, 파일의 그룹, 다른 사용자로 나누어 설정할 수 있다.
chmod를 이용한 파일/디렉토리의 권한 변경은 8진수를 이용 변경법과 기호에 의한 변경법이 있다. 방법이 달라도 같은 변경된 결과를 구할 수 있다.

모드 보기
파일이나 디렉토리는 모두 각각의 권한을 가지고 있다. 파일이나 디렉토리의 권한은 ls명령어를 이용하여 볼 수 있다.
출력된 내용은 다음과 같이 생각할 수 있다.

모드              파일소유자 파일그룹 용량 파일생성시간   파일명 
drwxrwxrw- 1 songsari   fish      46    JAN 21 18:23   dir 
-rw-r----x 1 songsari   fish      46    JAN 21 18:23   test.txt 

모드는 파일을 사용할 수 있는 상태를 뜻한다.

모드           설명                                               8진수표현 
d--------- 파일/디렉토리 구분 (파일:-,디렉토리:d)    
-r-------- 파일/디렉토리 소유자가 읽기 권한이 있다    400 
--w------- 파일/디렉토리 소유자가 쓰기 권한이 있다   200 
---x------ 파일/디렉토리 소유자가 실행 권한이 있다    100 
----r----- 파일/디렉토리 그룹이 읽기 권한이 있다         40 
-----w---- 파일/디렉토리 그룹이 쓰기 권한이 있다        20 
------x--- 파일/디렉토리 그룹이 실행 권한이 있다         10 
-------r-- 다른 사용자가 읽기 권한이 있다                    4 
--------w- 다른 사용자가 쓰기 권한이 있다                   2 
---------x 다른 사용자가 실행 권한이 있다                    1 

기호 모드에 의한 파일 권한변경
기호에 의한 변경밥업은 주요 기능의 기호화한 조합으로 설정할 수 있다. 사용자 기호 는 파일/디렉토리를 사용하려는 사용자에 따른 구분이다. 파일/디렉토리에 소유자나 그룹 그 외의 사용자에 다른 권한을 줄 수 있다. 설정하고 싶은 권한을 퍼미션 기호에서 정하여 설정기호를 이용해 조합하여 사용한다. 예로 test.txt 라는 파일을 다른 사용자가 읽을 수 있는 권한을 준다면 다음과 같이 입력한다.

# chmod o+r test.txt 

test.txt파일에 소유자와 그룹에 읽기 쓰기 권한을 주고 다른 사용자의 읽기 권한을 금지하고자 한다면 다음과 같이 입력한다.

# chmod ug+rw,o-r test.txt 

이 경우 쉼표(,)를 이용해 한번에 중복 설정할 수 있다.
[b]사용자 기호
u : user-파일/디렉토리의 소유자
g : group-파일/디렉토리의 그룹
o : other-다른 사용자
a : all-소유자, 그룹, 다른 사용자 모두(아무 표시 안할 경우 기본으로 설정됨)
퍼미션 기호
r : read-파일/디렉토리에 읽기 권한을 준다.
w : write-파일/디렉토리에 쓰기 권한을 준다
x : execute-파일/디렉토리에 실행 권한을 준다.
s : set user(group) ID-파일 실행 시 파일의 소유자 혹은 그룹 권한으로 실행된다.
t : sticky bit-Sticky 비트를 설정한다.
u : user-현재 소유자의 퍼미션 설정과 같은 내용으로 변경된다.
g : group-현재 그룹의 퍼미션 설정과 같은 내용으로 변경된다.
o : other-현재 다른 사용자의 퍼미션 설정과 같은 내용으로 변경된다.
l : locking-강제로 파일을 잠근다.
설정기호
+ : 퍼미션 허가-지정한 퍼미션을 허가한다.
- : 퍼미션 금지-지정된 퍼미션을 금지시킨다.
= : 퍼미션 지정-지정된 퍼미션만 허가하고 나머지는 금지 시킨다.
8진수를 이용한 권한 변경
네 자리의 8진수를 이용하여 파일/디렉토리의 권한을 변경한다. 기본 8진수 테이블에 있는 숫자를 더해서 사용한다.
예로 test.txt 라는 파일에 소유자는 읽기 쓰기 실행 권한을 그룹은 읽기 실행 권한을 다른 사용자는 읽을 수 있는 권한을 준다면

# chmod 754 test.txt 

파일 소유자 위치에 일기(4), 쓰기(2), 실행(1)을 더하여 7을 넣는다. 그룹에는 읽기(4), 실행(1)을 더해서 5를 다른 사용자 위치에는 읽기 권한만 주어 4를 넣어 준다.
8진수 모드 변경
파일/디렉토리 소유자
0400 -파일/디렉토리의 소유자에게 읽기 권한을 준다
0200 -파일/디렉토리의 소유자에게 쓰기 권한을 준다
0100 -파일/디렉토리의 소유자에게 실행 권한을 준다
파일/디렉토리 그룹
0040 -파일/디렉토리의 그룹에게 읽기 권한을 준다
0020 -파일/디렉토리의 그룹에게 쓰기 권한을 준다
0010 -파일/디렉토리의 그룹에게 실행 권한을 준다
다른사용자
0004 -다른 사용자에게 읽기 권한을준다
0002 -다른 사용자에게 쓰기 권한을준다
0001 -다른 사용자에게 실행 권한을준다

4000 -파일 실행 시 파일의 소유자 혹은 그룹 권한으로 실행된다.
2000 -파일 실행 시 파일의 소유자 혹은 그룹 권한으로 실행된다.
1000 -Sticky 비트

파일 정보를 보기 위해 ls를 사용한다.

# ls -al 
drwxr-x---    6 root     root         4096 Mar 29 23:02 . 
drwx-----x   19 root     root         4096 Mar 17 09:23 .. 
-rwxr-xr-x   19 root     root        14096 Mar 17 09:23 test1.bmp 
drwxr-xr-x   19 root     fish         4096 Mar 17 09:23 songsari 

test1.bmp 파일을 소유자는 "읽기 쓰기 실행" 그룹은 "읽기 쓰기" 다른 사용자는 "실행으로 변경 해보자.

기호 모드로 변경
현재 소유자는 읽기 쓰기 실행 권한으로 되어 있어서 수정할 필요가 없으며 구룹은 읽기 실행 권한으로 되어 있으므로 실행 권한을 금지시키고 쓰기 권한을 주며 다른 사용자는 일기 실행 권한으로 되어 있으므로 읽기 권한을 금지시키며 된다.
그룹(u)에 실행(x)권한 금지, 쓰기(w)권한 주기 : u-x+w
다른 사용자(o)에 읽기(r)권한 금지 : o-r

# chmod u-x+w,o-r test1.bmp 

8진수 모드로 변경
소유자의 일기(400) 쓰기(200) 실행(100)권한을 그룹에 읽기(40) 쓰기(20) 다른 사용자는 실행(1) 권한을 준다.
소유자 읽기 쓰기 실행 : 400+200+100 : 700
그룹 읽기 쓰기 : 40+20 : 60
다른 사용자 실행 : 1 : 1

# chmod 761 test1.bmp 

[관련 명령어]
chfn 사용자 정보 변경
chgrp 그룹변경
chown 소유자 변경
chsh 셀 변경
2005/06/21 21:03 2005/06/21 21:03

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다