본문 바로가기
정보보안 지망이!/Linux 기초

Linux1_권한과 특수권한

by Edes Kim 2020. 5. 20.

<허가권> : Permission

- 파일이나 디렉터리의 r, w, x, 접근 권한을 표시하는 부분

- 숫자 or 문자 형태로 표현

 

#chmod [허가권] [변경할 파일 or 디렉터리]

chmod 755 /backup/inittab

chmod u-x,g-x,o+x /backup/inittab

 

<유마스크> : umask

- umask는 공통적인 권한을 가지고 있는 디렉터리나 파일을 생성할 때 효과적이다

- 파일이나 디렉터리를 생성할 때 적용되는 기본 허가권을 결정합니다

 

합계 8

drwxr-xr-x 2 root root 4096 5월 3 12:21 d1

       -rw-r--r-- 1 root root 0 5월 3 12:21 f1

drwxrwxr-x 2 samadal samadal 4096 5월 3 12:22 d2

       -rw-rw-r-- 1 samadal samadal 0 5월 3 12:22 f2 

 

[확인]

#umask 0022

root 에서 umask 값을 확인하면 0022 일반사용자는 0002가 나온다

 

- 디렉터리를 생성할 때 최대 권한인 777에서 입력한 umask 값을 뺀값이 앞으로 생성되는

디렉터리의 기본 허가권이다

777 - 22 = 755(관리자)

777 - 2 = 775(일반사용자)

 

- 파일의 최대 허가권은 666 (rw- rw- rw-) 이다.  ->파일은 x권한을 제외한다

666 - 22 = 644 (관리자)

666 - 2 = 662 (일반사용자)

 

[변경]

#umask [변경하고 싶은 umask 값]

umask를 304로 변경하면 디렉터리는 777 - 304 = 473으로 문제없이 생성이 된다

하지만 파일은 666 - 304 = 362 나와야 하지만 462가 나오게 됩니다

파일은 umask를 계산하는 방법이 디렉터리와 조금 다르다 ***

 

파일 umask 계산법

rw- rw- rw- = 666(파일의 최대허가권)

-wx --- r-- = 304(umask)

 

ex)

r-x rw- -w- = 562

-w- --- r-- = 204 (umask)

파일은 x를 사용하지 않기 때문에 마지막에 x를 제거합니다) 


<소유권> : Ownership

- 파일이나 디렉터리의 소유권자를 표시하는 부분

- UID 소유자계정

        /GID 관리 그룹

 

#chown [계정명 or 관리 그룹명] [변경할 파일 or 디렉터리]

chown samadal /backup/inittab                : UID만 변경

chown .samadal /backup/inittab               : GID만 변경

chown samadal. /backup/inittab               : 둘다 변경

chown root.samadal /backup/inittab          : UID는 root, GID는 samadal로 변경

 


특수 권한

< setUID, setGID >    *보통 파일에게 관리부여

: 일반 사용자에게 어떠한 특수한 권한을 주는 것

  나머지 사용자가 파일, 디렉터리를 실행할때 소유자/관리 그룹의 권한으로 접근할수 있게 해주는 권한

 

                          x권한 여부
SetUID       4000    s       S        : SetID로 접근시 UID
SetGID       2000    s       S        : SetID로 접근시 GID의 권한을 가진다
Sticky Bit    1000    t       T        : 공유디랙터리 설정

                7xxx

 

 

=> 사용자가 자신에게 부여된 실행권한(other)을 통해 실행을 하게되면 소유자의 setUID를 확인하고 소유자의 권한 (또는 소유자의 UID)으로 실행하게된다.

관리자는 0부터

일반사용자는 1001부터 +1

 

 


< sticky bit >    *보통 디렉터리에게 부여하는 권한

: 디렉터리를 자유게시판 처럼 만드는 권한이다

  (= 읽기 쓰기가 되지만 다른 사람의 게시글을 읽을순 있어도 수정할수는 없는 권한)

  

- 나머지 사용자의 권한 부분중 실행 권한 부분이 x가 아닌 t로 나타낸다.

- chmod 1xxx [파일이름] 또는 chmod 0+t [파일이름] 명령어로 설정할 수 있다

- 자유게시판처럼 StickyBit가 부여된 디렉터리 내에서는 누구나 자신의 파일을 생성하거나 수정, 삭제가 가능하지만 다른 사용자의 파일을 수정하거나 삭제할 수는 없다 (단, 관리자는 가능)

= 여러가지 프로그램들이 일시적으로 사용하는 그런 공용디렉터리를 만들 때 효과적으로 쓰이는 권한이다.

- 대표적인 예로 /tmp 디렉터리가 있다

 

다 다른 권한 (관리자, 관리그룹,일반 사용자등)으로 파일이나 디렉터리를 잠깐동안 생성하여 다 다른 실행권한 가지게 되고 그걸 후에 지워야할때

내가 권한을 쥐고 있는 디렉토리가 어디에 어떤건지 햇갈리게 된다.

이런경우 일반적으로 tmp와 같은 일시적으로 저장할수 있는 곳에다가 저장을 해놓고 파일이나 디렉토리를 사용한 다음에 후에 지우는, 그런 상황에서 사용되는 권한이다.

=> 어떤 사용자로 해당 프로그램이 실행되어있던 상관없이 그 사용자의 계정으로 파일이나 디렉터리가 생성이 되게되고 자유 게시판이니까 얼마든지 게시글을 쓸수있고 다른 사람글도 읽을수 있다.아무나. 대신 그파일을 생성한 사용자가 아니면 해당 파일을 삭제, 수정할수는 없다. 


SetUID 실습

cd /usr/bin 이동 후

passwd 허가권을 777로 변경                          ->원래는 -rwsr-xr-x. 1 root root 27856 8월 9 2019 passwd  

samadal 계정으로 접속해서 패스워드를 변경시도

결과 passwd 명령어는 실행은 되지만 패스워드 변경이 안된다

***passwd 명령어는 root의 권한으로 실행하기 때문에 일반사용자는 SetUID가 없으면 사용할 수 없다

 

 

SetGID 실습

root 에서 /test 생성

test의 허가권을 2777 로 변경

samadal로 들어가서 /test안에 samadal 파일을 생성한다

 

*** 그 결과, GID가 samadal이 아닌 root로 생성이 되어있다

[samadal@localhost sb]$ ls -l /test/

         -rw-rw-r-- 1 samadal root 0 5월 3 12:11 samadal

 

Sticky bit 실습

root로 접속 후 user1 계정 생성

root로 /sb 디렉터리 생성 후 허가권을 1777로 변경한다

그리고 user1 과 samadal로 putty 접속 후

/sb안에 파일 생성과 삭제가 가능한지 확인한다

-> 파일생성은 가능하지만 수정과 삭제는 자신이 만든 파일만 가능

     (다른 계정의 파일은 수정,삭제할 수 없다)

'정보보안 지망이! > Linux 기초' 카테고리의 다른 글

Linux1_압축(수정중)  (0) 2020.05.20
Linux1_사용자 계정  (0) 2020.05.20
Linux1_vi 에디터  (0) 2020.05.18
Linux1_리눅스 명령어  (0) 2020.05.18
Linux1_기초  (0) 2020.05.18