LINUX, 특수 권한

2020. 9. 3. 17:03BACKEND/Linux

안녕하세요 〰️ 오늘은 리눅스의 권한 관리하는 법 2부입니다.

만약, 1부를 보지 않고 권한에 대해 잘 모른다고 생각하신다면 1부를 반드시 확인해주세요! 

원래 특수권한과 같이 발행하려고 했는데, 포스팅의 길이가 너무 길어져서 따로 분리했습니다 🤣

 

*****************  INDEX  *****************

 

[1부]

🚀 권한 관리❓ 

💼 소유권(Ownership)

🔑 허가권(Permission)

 

[2부]

👾 특수 권한

 

[3부]

📀 디스크 쿼터

💼 디스크 쿼터 설정하기

⚡️ 디스크 쿼터 명령어

 

******************************************** 


👾 특수 권한

특수 권한이란, 기존의 권한 제외한 조금은 특이하다고 생각할 수 있는 권한인데요.

예외적인 상황에 대처할 수 있는 권한입니다.

 

✔️setUID

SetUID가 설정된 파일은, 실행 시 일시적으로 파일 소유자의 권한을 얻어 실행할 수 있도록 합니다. 

만약 소유자가 rwx 권한이 있다면 실행하는 대상이 권한이 없을지라도 rwx를 수행할 수 있죠.

 

이런 기능이 왜 생겼을까요❓

가장 대표적으로 비밀번호를 변경하는 기능을 가진 /usr/bin/passwd 실행 파일이 그 예시 입니다.

setUID가 없을 때에는 자신의 계정 비밀번호를 변경하고 싶으면 관리자 권한을 요청해서 변경할 수 있었지만,

setUID 설정이 되어 있기 때문에 누구든 자신의 비밀번호를 변경할 수 있는 것입니다.

 

$ ls -l /usr/bin/passwd
-rwsr-xr-x.  1 root root 30768 2020-08-12  20:10 /usr/bin/passwd

 

위의 정보에서 뭔가 낯선 것이 보이나요?

rwx 가 아닌 rws 로 표시되어 있는 점이 낯설지 않나요❓ 

setUID를 설정한 파일은 위와 같이 's' 가 붙습니다.

 

간혹, 대문자 S가 표시될 수도 있는데요.

그럴 땐 실행권한이 없는 파일에 setUID가 설정되어 있기 때문입니다. 

rwx -> rws로 변경되지만, 권한이 없는 파일은 rw- -> rwS 로 설정되는 것입니다.

 

 


자, 그럼 setUID는 어떻게 설정할까요❓ 

 

chmod 명령어를 사용해서 변경합니다.

기억나지 않으신다면 이 전 포스터에서 chmod를 살펴보세요!

 

setUID는 사용자에게 기호 s를 부여하거나 4000으로 표시합니다.

 

$ chmod u+s 파일명

//or

$ chmod 4644 파일명

 

 

✔️setGID

 

setUID와 비슷하게 소유 그룹만 접근 가능한 파일에 일반 유저로 접근이 필요할 때 사용합니다.

개념은 위와 비슷하니, 자세한 설명은 생략하겠습니다.

 

setGID는 그룹에게 기호 s를 부여하거나 2000으로 표시합니다.

 

$ chmod g+s 파일명

//or

$ chmod 2644 파일명

 

 

 

✔️sticky bit

 

Sticky bit가 설정되어 있는 디렉터리 안의 내용은 해당 파일의 소유자나 root만이 변경 가능합니다.

공용 디렉터리라도 권한의 제약을 두어 다른 사용자들의 파일을 보호하기 위한 목적으로 만들어졌습니다.

 

그래서, 일반적으로 공용 디렉터리를 사용할 때 sticky bit를 설정합니다. 

sticky bit가 설정된 파일은 누구든지 접근 가능하고 파일을 생성할 수 있지만, 삭제는 생성자와 관리자만이 할 수 있습니다.

일반적으로 sticky bit로 설정되는 디렉터리는 /tmp 안에 생성합니다.

 

sticky bit는 기호 t를 부여하거나 1000으로 표시합니다.

 

$ chmod +t 파일명

//or

$ chmod 1644 파일명

 

마찬가지로, 만약 권한이 없는데 sticky bit를 부여하면 대문자 T로 표시됩니다.

 

 

 

 

✔️ setUID VS setGID VS sticky bit

  setUID setGID sticky bit
기호 u+s g+s +t
숫자 4000 2000 1000
표시 (예시) -rwsr-xr-x -rwxr-sr-x drwxrwxrwt

 

 

 

 

이상으로 특수권한에 대해 알아보았습니다 ❗️ 

조금 특이하고 예외적인 권한이라 재밌게 본 것 같아요 ~.~

그런데, 이러한 특수권한이 보안상에는 큰 문제가 생길 것 같아요.

다음에 기회가 된다면 이와 관련된 해킹과 보안에 대해 더 깊게 알아보고 싶어요 !

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

LINUX, shell 알아보기  (0) 2020.10.11
LINUX, 사용자 사용량 관리하기  (0) 2020.09.03
LINUX, 권한 관리하기  (0) 2020.08.28
정규식, 제대로 사용하기 - 심화  (4) 2020.08.16
정규식, 어렵지 않게 사용하기 - 기본  (0) 2020.07.07