반응형

허가권 ( Permission )


파일유형 필드에 퍼미션 구조를 이룬다,

읽기권한, 쓰기권한, 실행권한 등 세가지 필드로 구성된다.

 

 

 

-                r w x               r w x                 r w x

파일유형      사용자(user)        그룹(Group)       기타사용자(Other)

 

 

r w x 의 의미

r : 디렉토리/파일을 읽을 수 있는 권한 ( read)

w : 디렉토리/파일을 생성, 수정, 삭제할 수 있는 권한 ( write )

x : 디렉토리 접근, 파일의 실행권한 ( Access/eXute )

- : 해당 권한이 없는 경우 ( bar )

 

 

ex)

rwx r-x r-x

 

소유자는 읽기, 쓰기, 실행 권한을 모두 가지고 있다.

그룹 사용자는 읽기, 실행 권한을 가지고 있다.

기타 사용자는 읽기, 실행 권한을 가지고 있다.

 

ex)

rw- --- ---

소유자는 읽기, 쓰기 권한이 있다

그룹 사용자는 권한이 없다

기타 사용자는 권한이 없다.

 

 

 

# chmod - 허가권 변경 ( Change mode )

형식 : # chmod [모드] [파일명]

 

2가지 모드로 허가권을 변경할 수 있다.

 

기호모드 (상대값) <Symbolic > - 사람의 입장 

숫자모드 (절대값) - 컴퓨터의 입장 

 

 

1.기호모드

 

+    : 허가 권한 부여

-     : 허가 권한 제거

=    : 허가 권한 유지

s     : SetUID, SetGID

t     : StickyBit

u     : 소유자 권한

g     : 그룹 권한

o     : 기타 사용자

a     : 사용자, 그룹, 기타 사용자 모두에게

 

 

기호모드는 대상 ( u, g, o, a )에 대하여 rwx권한을 부여할 것인가 제거할 것인가를 모두 기호로 설정하는것이다

 

Ex)

1. 기타 사용자의 x 권한을 제거할때

기존 :    rwx     r-x     r-x 

# chmod o-x dong

변경후 :  rwx     r-x     r--

 

2. 그룹사용자의 쓰기, 기타사용자 쓰기권한 추가

기존 :    rwx    r-x    r--

# chmod g+w,o+w dong

변경후:    rwx  rwx  rw-

 

 

 

2. 숫자모드

- 각각의 허가권 필드를 3자리 8진수로 표기

- 완전한 표기법은 4자리 이지만 일반적으로 3자리를 사용한다

 

2진수 표기

1 - 해당권한 부여

0 - 해당 권한 해제

 

 

사용자필드        사용자      그룹        기타 사용자

허가권              r w x        r w x        r w x

자릿수              4 2 1        4 2 1       4 2 1

2진수               1 1 1        1 1 1       1 1 1

8진수                  7            7            7

 

Ex)

 

r w x        r - -        r - x

1 1 1        1 0 0      1 0 1

   7            4            5

 

->  # chmod 745 [ 파일명 ]  :  r w x    r - -    r - x

 

 

특수 권한의 종류

 

SetUID

- 실행 파일에 한해서 설정이 가능하며, SetUID 설정이 되어있는경우

실행한 사용자가 아닌 파일을 소유한 사용자의 권한으로 프로세스가 실행된다.

 

SetUID는 보통 root가 소유한 파일에 적용되며, 해당 명령을 실행하는 순간에는 Root 권한을 갖는다.

 

passwd 명령어 ( /usr/bin/passwd )로 패스워드를 지정, 변경시

/etc/passwd,  /etc/shadow 파일의 내용이 변경된다.

 

- /etc/passwd (644) --> root만 수정이 가능하다.

- /etc/shadow (000) --> root만 수정이 가능하다.

 

일반사용자 계정에서 passwd 명령어 실행 시 passwd 파일 소유자 root권한으로 실행되기 때문에

Root만 수정이 가능한 /etc/passwd,  /etc/shadow 파일을 수정할 수 있게된다.

 

SetUID 설정방법

- 기호모드 

- 숫자모드

 

 

SetGID

- 프로세스가 실행한 사용자의 그룹소유자가 아닌 파일의 그룹 소유자 권한으로 실행된다.
- SetGID가 디렉토리에 설정되어 있는 경우, 디렉토리에서 만들어지는 파일이 모두

  해당 디렉토리의 그룹 소유권을 갖는다.

 

 

SetUID 설정방법

- 기호모드  ( g+s ) 

- 숫자모드  ( 2XXX )

 

 

# useradd SetGID-user1

# groupadd SetGID-group

# usermod -g SetGID-group SetGID-user1

# mkdir /practice/SetGID-dir

# cd SetGID-dir

# touch SetGID-file1

# touch SetGID-file2

#cd ..

# chown SetGID-user1:SetGID-group SetGID-dir        // 소유권 변경

# cd SetGID-dir

# touch SetGID-file3

# touch SetGID-file4

# cd ..

# chmod g+s SetGID-dir        // 그룹 허가권 필드 s 변경

 

 

StickyBit

- 모든 사용자가 생성/수정/삭제가 가능한 디렉토리에 적용한다.

- Sticky Bit 설정 후에는 해당 파일의 소유자만 해당 파일을 삭제 할 수 있다.

한마디로, 공용 파일이 있는데 삭제는 소유자만 할 수 있도록 하는 설정.

 

SetUID 설정방법

- 숫자모드  ( 1XXX )

 

 

umask

- 새로운 파일이나 디렉토리 생성시 기본 허가권을 결정하는 기준이 되는 값.

 

디렉토리의 기본 허가권 값은 777 rwx rwx rwx 이다.

파일의 기본 허가권 값은 666 rw-  rw-  rw- 이다.

 

해당 값에서 UMASK 값을 빼고 남은 값으로 기본 허가권이 결정된다.

 

 

디렉토리 

파일 

기본값

777 

666 

UMAK  

022 

022 

결정된 허가권

755

644

 기호모드

rwx r-x r-x

rw- r-- r--

 

Ex)

UMASK 값이 007 일때,   디렉토리의 기본값은 770        파일의 기본값은 660이 된다.

UMASK 값이 200 일때,   디렉토리의 기본값은 577        파일의 기본값은 466이 된다.

UMASK 값이 040 일때,   디렉토리의 기본값은 737        파일의 기본값은 636이 된다.

 

 



출처: https://tyen.tistory.com/40 [TYen]

728x90

+ Recent posts