[UNIX / Linux] 권한 관리(chmod, chown, chgrp, umask)
접근 권한 변경(chmod)
- chmod 명령: 기존 파일 또는 디렉토리에 대한 접근 권한(파일 모드)을 변경할 때 사용
- 파일 모드의 변경은 파일 소유자나 슈퍼 유저만 가능
- 파일 모드는 기호(문자)나 8진수로 지정
1. chmod 명령 도움말
- 주요 옵션
옵 션 |
설 명 |
-R |
하위 디렉토리와 파일의 권한 까지 변경 (동일 권한을 디렉토리와 파일에 지정) |
2. 접근 권한을 기호(문자)로 표현
- 문자 표기법은 변경할 사용자(대상), 수행할 명령(연산), 설정할 퍼미션(접근 권한) 세 부분으로 분류됨
- 다른 대상의 속성을 건드리지 않고 한 대상 속성만을 설정할 수 있는 장점을 가짐
- 복수 지정은 콤마(,)를 사용하여 구분
구 분 |
기 호 |
설 명 |
사용자 (대상) |
u |
user의 약자, 파일이나 디렉토리 소유자를 의미 |
g |
그룹 소유자 |
|
o |
others의 약자, 기타 사용자를 의미 |
|
a |
all의 약자, u,g,o의 조합 |
|
아무 문자를 사용하지 않으면 all로 추정 | ||
수행할 명령 (연산) |
+ |
추가 |
- |
제거 |
|
= |
지정, 기존의 속성 값은 사라짐 |
|
설정할 퍼미션 (접근 권한) |
r |
읽기 |
w |
쓰기 |
|
x | 실행 |
- 사용 예시
표기법 |
의 미 |
u+x |
소유자에게 실행 권한을 추가 |
u-x |
소유자의 실행 권한 제거 |
+x |
모든 사용자(소유자, 그룹, 기타사용자)에게 실행 권한 추가 |
o-rw |
기타사용자의 읽기, 쓰기 권한 제거 |
go=rw |
그룹, 기타사용자에게 읽기, 쓰기 권한 지정, 이전에 실행 권한을 가지고 있다면 제거됨 |
u+x,go=rw | 소유자에게 실행권한을 추가하고 그룹, 기타 사용자에게 읽기, 쓰기 권한 지정 |
a=rw | 모든 사용자에게 읽기, 쓰기 권한 지정 |
g-w | 그룹 소유자의 쓰기 권한 제거 |
g+w,o-x | 그룹 소유자에게 쓰기 권한 추가, 기타 사용자의 쓰기 권한을 제거 |
3. 접근 권한을 8진수로 표현
- 원하는 파일의 접근 권한을 설정하기 위해 8진수 표기법을 사용
- 3자리의 8진수로 소유자, 그룹 소유자, 기타 사용자를 위한 파일 모드를 설정할 수 있음
- r(읽기, 4), w(쓰기, 2), x(실행, 1)
- 2진법과 8진법의 파일 모드
8진법 |
2진법 |
파일 모드 |
0 |
000 |
--- |
1 |
001 |
--x |
2 |
010 |
-w- |
3 |
011 |
-wx |
4 |
100 |
r-- |
5 |
101 |
r-x |
6 |
110 |
rw- |
7 |
111 |
rwx |
4. chmod 사용 예시
소유권 또는 그룹 변경(chown / chgrp)
- 파일이나 디렉토리의 소유주나 그룹을 변경할 때 사용
- 명령을 실행하고 나면 파일에 대한 이전 소유주는 해당 파일에 이 명령을 다시 실행할 수 없음
- 명령어를 사용하기 위해서는 슈퍼유저 권한이 필요함(보안의 특성상 슈퍼유저만 사용)
1. 파일 소유자와 그룹 변경(chown)
1) chown 명령어 도움말
- 주요 옵션
옵 션 | 설 명 |
-h | 심볼릭 링크 파일 자체의 소유주나 그룹을 변경 |
-R | 하위 디렉토리와 디렉토리 하위의 모든 파일의 소유주를 변경 |
2) chown 명령어 사용 예시
2. 그룹 소유권 변경(chgrp)
- UNIX의 이전 버전에서는 chown 명령어가 그룹 소유권이 아닌 파일 소유권만 변경할 수 있었음
- chgrp 명령어: 그룹 소유권을 변경하기 위한 독립된 명령어
1) chgrp 명령어 도움말
- 주요 옵션
옵 션 | 설 명 |
-h | 심볼릭 링크 파일 자체의 그룹 소유권 변경 |
-R | 하위 디렉토리와 디렉토리 하위의 모든 파일의 그룹 소유권 변경 |
2) chgrp 명령어 사용 예시
접근 권한 마스크(umask)
- chmod 명령: 기존 파일의 접근 권한을 변경할 때 사용, 8진수로 지정하는 접근 권한은 해당 파일이 가져야 할 권한을 명시함
- umask 명령: 앞으로 만들어질 파일에 영향을 미치는 명령, 명령으로 지정한 8진수는 새로 만들어질 파일에서 제거될 권한을 명시
1. 접근 권한 기본 값(파일과 디렉토리 생성시 접근 권한, 단, umask로 지정한 값은 기본값에서 제거)
- 일반(정규) 파일; 666(rw-rw-rw-) - umask로 지정한 값
- 디렉토리: 777(rwxrwxrwx) - umask로 지정한 값
2. umask 값 설정
- 시스템 관리자는 /etc/profile 파일에 umask를 지정하여 시스템 전체 사용자에게 획일적인 umask값을 적용 가능
- 보통 group과 other의 쓰기권한에 제한을 두는 022를 많이 사용
3. umask 명령어 사용 예시
'개발 > Linux' 카테고리의 다른 글
[리눅스 명령어]access (0) | 2018.09.03 |
---|---|
리눅스에서 폴더 통째로 복사/이동/삭제하기 (0) | 2017.01.18 |
chmod로 하위폴더까지 권한주기 (0) | 2017.01.03 |
APACHE 웹 서버 취약한 메서드 차단 (0) | 2016.12.29 |
OPEN SSL 설치 및 버전 확인 (0) | 2016.12.26 |