특수 권한 ( SetUID, SetGID, Sticky)


1.SetUID 

1) 일반적으로 실행 파일에 적용하는 권한으로 SetUID가 설정된 실행 파일

2) 실행하게 되면 해당 파일을 실행한 사용자가 아닌 해당 파일을 소유한 소유자의 권한으로 프로세스가 실행 된다. ( root가 소유한 파일에 설정 )


설정방법

- 기호모드 u+s

 - 숫자모드 4000

ex)

1) mkdir /practice/SetUID

2) cd /practice/SetUID

3) touch SetUID-1

4) touch SetUID-2


5) chmod 4755 SetUID-1 // rws r-x r-x -> 기존 허가권에 x 권한이 있으면 소문자 s

       rwx r-x r-x

6) chmod 4655 SetUID-2 // rwS r-x r-x -> 기존 허가권에 x 권한이 없으면 대문자 S

       rw- r-x r-x

SetUID-3 파일을 root 계정만 읽을 수 있도록 설정

ex)

chmod 400 SetUID-3

일반 사용자 계정으로 로그인하여 해당 명령어 실행

su - (일반사용자)

cat /practice/SetUID/SetUID-3

ll /bin/cat //명령어 cat 실행파일

exit

chmod u+s /bin/cat //cat 파일에 SetUID 설정

ll /bin/cat

일반 사용자 계정으로 로그인하여 해당 명령어 실행

su - (일반사용자)

cat /practice/SetUID/SetUID-3

go home <<<<<<<<<<<<<<<<<<

/bin/cat 실행 파일(명령어)이 프로세스로 동작할 때 현재 로그인 한 사용자의 권한이 아닌 해당 파일의 소유자권한(root) 으로 실행되어 허가권이 없는 파일임에도 내용을 확인 가능


/bin/cat 허가권 원상복구

1) chmod u-s /bin/cat


2) SetUID는 사용을 잘 하면 시스템 운영에 큰 도움이 되지만, 자칫하면 보안에 큰 위험이 될 수 있는 설정이다.

# root 권한으로 실행되기 때문에


2. SetGID

1) 파일을 소유한 그룹의 권한으로 실행

2) 파일에는 설정하지 않으며, 디렉토리에 설정


설정방법

- 기호모드 g+s

- 숫자모드 2000


mkdir /practice/SetGID

cd /practice/SetGID

touch FILE1

ll 소유권 필드 확인 (root root)

chmod 2755 /practice/SetGID // 테스트 디렉토리에 SetGID 설정 확인

ll /practice/ // SetGID 디렉토리 허가권 확인

// 원본    rwx r-x r-x

              // 설정 후 rwx r-s r-x


chown root:BLACKPINK /practice/SetGID // 테스트 디렉토리의 소유권 변경

ll /practice/

                  [USER] [GROUP]

touch FILE2 //파일 생성

touch FILE3

ll

파일을 생성한 계정의 그룹 소유권으로 생성되는 것이 아니라, SetGID가 설정 된 디렉토리의 소유 그룹의 권한으로 파일이 생성된다.

팀단위 작업 시 같은 그룹에 속한 사용자들끼리 파일을 공유하도록 하고자 할 때 설정한다.



3. Sticky

1)파일에 사용 할 수 있는 권한이나 현재는 사용하지 않으며, 모든 사용자가 생성, 쓰기, 삭제 등 모든권한이 적용되어 있는 디렉토리에 설정한다.

2)Sticky가 설정된 디렉토리 내에서는 해당 파일을 소유한 사용자만이 해당 파일을 삭제할 수 있다.


설정방법

-기호모드 o+t //기타 사용자 필드에 t 추가

-숫자모드 1000


ex)

mkdir /practice/temp1

mkdir /practice/temp2

touch /practice/temp1/sticky_test

touch /practice/temp2/sticky_test

chmod 1777 /practice/temp1 // Sticky 적용된 디렉토리

chmod 777  /practice/temp2 // 

drwxrwxrwt. 2 root root        4096 2020-06-23 16:43 temp1

drwxrwxrwx. 2 root root        4096 2020-06-23 16:43 temp2

chmod 777 /practice/temp1/sticky_test // 허가권 변경

chmod 777 /practice/temp2/sticky_test


su - (일반사용자)

cd /practice/temp2

ll // (rwx rwx rwx)

rwx rwx rwx root root sticky_test

echo "test" >> sticky_test

cat sticky_test

rm sticky_test // 허가권이 있기 때문에 삭제 가능

cd /practice/temp1

ll

rwx rwx rwx  root root  sticky_test

echo "test" >> sticky_test

cat sticky_test

cat sticky_test

rm sticky_test // 삭제만큼은 해당 파일을 소유한 계정만 가능

rm:cannot remove 'sticky_test' : 명령을 허용하지 않음

'Server > Linux' 카테고리의 다른 글

Linux // 파일 속성  (0) 2018.02.02
Linux // sudoers  (0) 2018.02.01
Linux // UMASK  (0) 2018.01.30
Linux // 권한  (0) 2018.01.26
Linux // 비밀번호 일괄변경  (0) 2018.01.24

+ Recent posts