파일 접근 권한(permission) 과 umask에 대하여
vsftpd 어쩌구 관련하여 umask 말이 나온김에,기억을 더듬어 간략하게 설명하고자 한다.
ls -l 을 쳐보면 앞부분의 파일권한이 표시가 되는데 바로 이부분이 umask와 연관이 있다.
drwxr-xr-x 3 root root 4096 2010-11-17 17:38 udev
파일권한 속성은 보통 d = 디렉토리,r = 읽기가능,w = 쓰기가능,x = 실행가능의 의미로
표현 되며 시스템 내부에서는 1 User당 각각 3비트씩 표현하여 'rwx' 문자출력 형태로 표현한다.
(맨앞의 d는 mkdir 명령과 같이 시스템이 정하는 값으로 디렉토리를 의미한다)
문자= 2진법 = 10진법
--- = 000 = 0
r-- = 100 = 4
r-x = 101 = 5
rwx = 111 = 7
그렇다면,파일의 전체 권한은 멀티유저 플랫폼 O.S로써 당연히 본인이외에
본인이 속한 그룹,그리고 나머지 그룹 사용자에 대한 권한을 가지게 되며
나/그룹/Others 순으로 표현된다.
디렉토리여부|나(Owner)|내가속한 그룹|나머지 그룹
drwxr-xr-x 2 root root 4096 2010-11-17 17:38 update-motd.d
-rw-r--r-- 1 root root 300 2010-03-24 21:35 updatedb.conf
drwxr-xr-x 는 디렉토리이며 나는 모든권한(읽기/쓰기/실행)이 있으며 다른 사람들은 읽기,실행만 가능하다.
-rw-r--r-- 는 나는 읽기쓰기 가능하며 다른 사용자는 읽기만 가능하다.
이것은 chmod 명령으로 정할수 있다.
즉,chmod 755 는 2진법 표현의 비트로 풀어서 보면 Owner =(111), My Group = (101), Other Group = (101) 이며
차례대로 나/그룹/다른그룹 사용자에 대한 파일 접근권한을 부여하는 것이다.
그리고 umask란 이처럼 chmod로 설정되는 파일권한을 배타적(Exclusive) 연산으로
표현하는 반대되는 개념으로 설정되는 마스크 값이다.
예를 들어,chmod 022라는 명령어가 해당 그룹 및 다른 사용자들에게 쓰기권한을
부여하지만 umask 022는 해당 그룹 및 다른 사용자들에게 쓰기권한을 금지한다.
아래는 Umask에 따른 각 디렉토리와 파일의 chmod 값이다.
Umask 디렉토리 파일
----+-----------------+---------------
002 | 775(rwxrwxr-x) | 664(rw-rw-r--)
007 | 770(rwxrwx---) | 660(rw-rw----)
020 | 757(rwxr-xrwx) | 646(rw-r--rw-)
070 | 705(rwx---r-x) | 604(rw----r--)
022 | 755(rwxr-xr-x) | 644(rw-r--r--)
통상, 사람이 육안으로 계산해 보고자 할 경우는,디렉토리인 경우는 777 - umask값
파일인 경우 666 - umask값을 해보면 chmod 의 파일 권한값을 유추할 수 있다.
단,디렉토리는 x(실행권한)이 있어야 cd가 가능하므로 x권한 값(rwx중 실행권한인 0x01=001)
이 기본적으로 포함되어 있는 것이고 파일의 경우는 기본적으로 아무한테나 실행되면 안되므로
x값이 제외되는 것이기 때문에 6이라는 값이 나오는 것이다.
이 umask값은 시스템에서 파일이나 디렉토리 생성시 기본적인 권한값(permission)으로 설정되는데
사용되며 /etc/profile 을 비롯 자신의 홈계정의 .profile, .cshrc, .bashrc, .login과 같은
사용자 프로파일에서 설정한다.
헷갈리면 외우지 않아도 되는 부분인데,그때그때 umask 022 식으로 명령한 다음 파일을 하나
생성해보고 ls -l 하여 어떻게 권한이 부여되는지 속성값을 육안으로 확인해 봐도 된다.
'Server | Network' 카테고리의 다른 글
Daemon Process 작성시 주의사항 (1) | 2011.01.27 |
---|---|
고성능 네트워크 서버모델 서버엔진 개발기술.. (0) | 2011.01.15 |
우분투 vsftpd 설정하기 (0) | 2010.11.18 |
우분투 inetd 설치하기 (0) | 2010.11.18 |
GRUB 과 서로 다른 HDD에서 윈도우7 설치후 BOOTMGR is missing 오류 (0) | 2010.11.17 |