본문으로 바로가기
반응형


[UMASK]


mkdir, touch, vim 등 파일을 새로 생성시 설정되는 기본 퍼미션을 의미, 파일 및 디렉터리 생성시 기본 권한을 초기 설정하는 방법

대부분의 퍼미션값은 022


# /etc/bashrc (관리자) $ HOME/.bashrc(사용자)  에서 변경 가능


# vi /etc/bashrc


if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then

       umask 002

    else

       umask 022



  

디렉터리는 777, 파일은 666에서 UMASK값을 빼면 생성되는 파일이나 디렉터리의 권한을 알 수 있음


UMASK 

000 

001 

002 

022

파일 권한 

666 

665 

664 

644 

디렉터리 권한 

777

776 

775 

755 




# umask

0022


# ls -al

합계 72

drwxr-xr-x  2 root    root     4096 2017-09-07 15:01 hello1

-rw-r--r--  1 root    root        0 2017-09-07 15:01 hello2

-> ls -al로 퍼미션을 확인한 결과

hello1 755 / hello2 644로 umask 022를 뺀 값과 같음



- UMASK값 확인

# umask -S  ← 파일 및 디렉터리가 어떠한 값을 갖는지 보여줌

u=rwx,g=rx,o=rx 


- UMASK 값 변경

# umask [원하는 값]

# umask

0022


# umask 0033


# umask

0033






임의의 파일 A에 '갑'의 UID/GID가 걸려있는데, 이 파일을 '을'도 실행 할 수 있다고 가정하면 

'을'은 파일 실행시 '갑'의 권한을 가지고 임무를 수행하게 된다.

'을'이 파일을 실행하면 파일 A는 '갑'이 실행한 것으로 인식한다.


디렉터리 B에 sticky bit가 걸려있다면 그 디렉터리 B안에서 만든 '병'의 파일은 그 누구도 수정하거나 건들 수 없다. (단 root제외)



[UID bit]

- 특정 유저의 권한

- 사용자와 관계없이 해당 파일을 실행 할 때 파일의 '소유자 권한'으로 실행

- 명령어 : # chmod 4000

- 표시확인 : -rwsr-xr-x ← 권한 확인 시 소유자의 실행권한에 s가 표시

허가권의 'x'가 있으면 's'로 변경

허가권의 'x'가 없으면 'S'로 변경




[GID bit]

- 특정 그룹의 권한

- 사용자와 관계없이 해당 파일을 실행 할 때 파일의 '그룹 권한'으로 실행

- 명령어 : # chmod 2000

- 표시확인 : -rwxr-sr-x ← 권한 확인 시 그룹의 실행권한에 s가 표시

허가권의 'x'가 있으면 's'로 변경

허가권의 'x'가 없으면 'S'로 변경



[Sticky bit]

- 특정 파일을 파일의 소유자와 root만 변경 ,삭제가 가능함

- 명령어 : # chmod 1000

- 표시확인 : -rwxr-xr-t ← 권한 확인 시 다른 사용자의 실행권한에 t가 표시

허가권의 'x'가 있으면 't'로 변경

허가권의 'x'가 없으면 'T'로 변경

- 공용으로 이용하는 폴더 등에서 사용하여 자신의 데이터가 피해를 입지 않도록 하는 것









>> 테스트


chmod로 각각에 UID와 sticy bit를 걸었음



chmod 1755 hello1

# chmod 4700 hello2


# ls -al  --color

합계 72

drwxr-xr-t  2 root    root     4096 2017-09-07 15:01 hello1

-rws------  1 root    root        0 2017-09-07 15:01 hello2


# ls -al --color로 실행 시 색상이 다르게 나타나며 특수권한이 걸려있는것을 확인 할 수 있음



반응형

'서버 & 시스템 > Linux' 카테고리의 다른 글

특정 IP만 SSH접속 허용하기  (0) 2017.09.18
hostname, resolv.conf 설정  (0) 2017.09.18
언어셋 설정  (0) 2017.09.04
디스크 추가, 포맷, 마운트  (0) 2017.09.04
Ioncube 설치  (0) 2017.09.04