
특수 권한
1. 특수 권한의 개요
- 리눅스의 권한 체계는 3계층(사용자, 그룹, 기타 사용자)에 3가지 권한(읽기, 쓰기, 실행)을 부여하는 형태에 이루어져 있음
- Set-UID, Set-GID, Sticky-Bit : 일부의 권한 허용 등을 위한 특별한 권한
- Set-UID
- 실행 파일에 사용됨
- Set-UID가 부여된 파일을 실행시, 해당 파일을 실행하는 동안에는 실행시킨 사용자의 권한이 아닌 해당 파일의 소유자 권한으로 인식
- 실행 파일에 주로 사용하므로 설정하면 소유자 권한 부분의 x자리에 s로 표기됨 만약 실행 권한이 없는 파일에 부여하면 대문자S로 나타남
- Set-GID
- 실행파일에 설정되어 있을 때 이 파일을 실행하는 동안에 실행시킨 사용자 그룹 권한이 아닌 해당 파일을 소유한 그룹 권한으로 인식
- Set-GID는 주로 디렉터리에 설정되는데, 이 권한이 설정된 디렉터리에 사용자들이 파일이나 디렉터리를 생성하면 사용자가 속한 그룹에 상관없이 디렉터리 소유 그룹 권한이 부여됨
- 그룹 소유권 부분에서 x 자리에 s로 나타나며, 만약 실행 권한이 없을 경우에는 대문자 S로 표시됨
- Sticky-Bit
- 디렉터리에 설정되는 특수 권한으로 일종의 공유 디렉터리로 사용됨
- 리눅스에서는 /tmp 디렉터리에 기본적으로 설정되어 있음
- 일반적인 권한 계층에서 Other 계층 권한에 rwx으로 설정되어 있을 경우, posein이라는 사용자도 파일 생성이 가능하고, yuloje라는 사용자도 파일 생성이 가능함. 이경우 문제점이 posein 사용자가 yuloje 사용자가 생성한 파일을 삭제할 수 없게됨. 이때 Sticky-Bit를 설정하면, posein과 yuloje 사용자들이 생성에는 제한이 없지만, 삭제할 경우 본인이 생성한 파일 이외에는 불가능
- Sticky-Bit는 Group과 Other 계층 사용자에게 사용할 수 있으나 두 계층 함께 사용은 불가함 이 권한은 무조건 other 계층에 설정하도록 되어 있으며, 설정하면 other 계층 권한 부분의 x자리에 t로 표기됨. other 계층에 실행 권한이 없는 경우, 즉 그룹의 공유 모드로 사용한 경우에는 대문자 T로 표기됨
- Set-UID
2. 특수 권한의 확인
Set-UID
- Set-UID가 설정된 실행 파일에는 passwd 명령어가 있음
- passwd 명령어에 Set-UID 가 설정되어 있으면 일반 사용자라고 하더라도 명령어를 실행하는 동안에는 파일 소유자인 root의 권한으로 인정받아 패스워드의 변경 정보를 /etc/shadow에 기록할 수 있게 됨
Set-GID
- Set-GID가 설정된 실행 파일에는 write 명령어가 있음
- write는 특정 사용자에게 메시지를 전달하는 명령어, 실제로는 로그인한 사용자가 이용하고 있는 터미널에 메시지를 전송하는 명령어
- 실행시 터미널과 같은 장치 파일에 쓰기 권한이 행사할 수 있게됨
Sticky-Bit
- /tmp는 임시 저장 디렉터리로 X윈도 실행시에 필요한 소켓 등 일시적으로 시스템이나 응용 프로그램에 필요한 파일들이 저장되는 디렉터리
- 특별히 사용자 권한을 지정하기 어려운 응용 프로그램들이 일시적으로 파일을 생성하고 삭제하도록 이용됨. 특정 응용 프로그램이 다른 응용 프로그램에서 생성한 파일을 삭제하지 못하도록 하는 권한 설정
3. 특수 권한의 설정
- Set-UID, Set-GID, Sticky-Bit도 허가권(Permission) 설정 명령어인 chmod를 사용
- 문자 모드인 경우에는 Set-UID, Set-GID는 s를 사용하고 Sticky-bit은 t를 사용
- 숫자 모드인 경우에는 천의 자리가 사용되고 Set-UID는 4, Set-GID는 2, Sticky-Bit은 1의 값을 가짐
'Linux' 카테고리의 다른 글
| [Linux] chgrp (change group) (0) | 2025.06.28 |
|---|---|
| [Linux] chmod(change mode) (2) | 2025.06.26 |
| [Linux] 사용자 패스워드 관리 - chage (0) | 2025.06.12 |
| [Linux] 사용자 계정 관리 - usermod (0) | 2025.06.07 |
| [Linux] 사용자 계정 생성 - useradd (0) | 2025.05.23 |