RadarURL
Skip to content
유닉스/리눅스
2017.10.24 09:12

[UNIX / Linux] 특수 권한(setuid, setgid, sticky bit)

조회 수 35 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

프로세스 번호

- UNIX 시스템에서는 프로세스에 다섯 가지 번호 부여

 

1. 프로세스에 부여되는 번호들

1) 프로세스 식별자(PID)

2) 실제 사용자 ID(RUID)

3) 유효 사용자 ID(EUID)

4) 실제 사용자 그룹(RGID)

5) 유효 사용자 그룹 ID(EGID)

 

2. 사용 용도

- 계정 관리에 사용: RUID, RGID

- 접근 권한 결정에 사용: EUID, EGID (보안에 주의)

- 일반적으로 실제 번호와 유효 번호는 동일함

 

시스템에서 사용자가 명령 실행 시 명령어를 찾는 경로와 절차

 

01.jpg

 

 

접근 권한

- 권한 관리 명령 chmod, umask, 소유주 변경 명령 chown, chgrp (이전 글 참조)

- 접근 권한은 8진수 또는 r(읽기권한, 4), w(쓰기권한, 2), x(실행권한, 1) 문자로 표현 가능

- 8진수로 표현할 때는 권한의 합으로 표시함(예- 읽기+쓰기권한 6, 읽기+실행 권한 5 등)

- 8진수 3자리(3bit)로 소유자, 그룹 소유자, 기타 사용자를 위한 파일 모드를 설정

 

1. 접근 권한 설정 예제 

- 접근 권한을 755로 표현하는 것과 0755로 표현하는 것은 동일한 표현, 네 자리가 되지 않는 표현은 앞에 0이 생략됨

02.jpg

 

 

특수권한

1. 특수권한

- UNIX 시스템은 파일에 대한 접근 권한 및 파일 종류를 나타내기 위해 16bit를 사용한다. 

- 각 3bit씩 총 9bit는 소유자 접근권한(user), 그룹 소유자 접근권한(group), 기타 사용자 접근권한(other)의 권한을 기술하는데 사용

- 4bit는 파일의 종류 표현에 사용

- 3bit는 특수권한에 사용

 

2. 각 비트에 대한 설명

03.jpg

 

 

파일종류

 특수권한

 소유자 접근권한

 그룹 소유자 접근권한

 기타 사용자 접근 권한

 -,d,c,b,s,l,p

 4

2

 1

 4

 2

 1

 4

 2

 1

 4

 2

 1

 setuid

 setgid

 sticky bit

 r

 x

 w

 x

 r

 

 

setuid 비트

- setuid 비트: 8진수 4000

- setuid 비트를 실행 파일에 적용하면 실 사용자(프로그램을 실제 실행 중인 사용자)에서 프로그램 소유자의 ID로 유효사용자(EUID)가 변경됨

 

1. setuid 비트를 설정하여 사용하는 경우

- 슈퍼유저 root만 접근할 수 있는 파일이나 명령에 대해, 일반 사용자로 접근하는 것이 기능상 필요한 경우

(setuid 비트가 설정된 파일은 실행순간만 그 파일의 소유자 권한으로 실행, 

실행 순간만 권한을 빌려온다라고 이해하면 쉬움)

- 매번 슈퍼유저 root가 어떤 행위를 해주지 않아도 되고, 일반 사용자에게 root권한을 주지 않아도 되기때문에 setuid 비트를 적용하는 것이 시스템 운영면에서 효율적

- 대부분 슈퍼유저가 소유한 소수 프로그램들에만 주어짐, 일반 사용자가 그 프로그램을 실행하면 setuid root가 되고, 

슈퍼유저의 유효한 특권들을 가지고 실행되기때문에 일반 사용자의 접근이 금지된 파일과 디렉토리들에 접근 가능하게끔 

해줌

 

2. setuid 비트 설정 시 보안 취약점

- root권한이 필요없는 프로그램에 소유주가 root로 되어 있고 setuid가 설정된 경우는 보안상으로 매우 취약

- 일반 사용자로 접근하는 경우도 setuid 설정으로 실행 가능해지기 때문이다.

- 권한 상승 우려때문에 setuid 프로그램의 수는 반드시 최소화해야 함

 

3. setuid 비트 설정 방법

- 8진수(4000)나 기호(u+s)를 이용하여 setuid 비트를 설정할 수 있음(setuid 비트 설정 제거 u-s)

- 권한 변경을 위해 chmod 명령어를 이용함

- setuid 비트가 설정되어 있으면 사용자 접근권한의 실행 권한 자리에 실행 권한이 있으면 소문자 s로 실행권한이 없으면 대문자 S로 표시됨

04.jpg

 

 

4. setuid 비트 설정의 활용

1) 패스워드 설정, 변경시 사용

- 패스워드 지정, 변경에 사용하는 /usr/bin/passwd 명령의 경우 setuid 비트가 설정 되어 있음(접근권한: 4755)

- passwd 명령어(파일)로 패스워드 지정, 변경 시 /etc/passwd, /etc/shadow파일이 변경됨

- /etc/passwd의 접근권한: 0644 (슈퍼유저 root만 수정 가능)

- /etc/shadow의 접근권한: 0640 (슈퍼유저 root만 수정 가능)

- passwd 명령어(파일)은 setuid 비트가 설정되어 있으므로 실행 시 소유자인 root의 권한으로 실행됨

- 일반 사용자 계정에서 passwd 명령어 실행 시에 소유자 root 권한으로 실행되기댸문에 슈퍼유저 root만 수정가능한 /etc/passwd, /etc/shadow 파일의 수정이 가능해 짐

 

05.jpg

 

 

2) 일반 사용자가 읽을 수 없는 파일 읽기

- 설명을 위해 예제를 만든 것이기 때문에 조금 억지스러운 부분이 있을 수 있음

- /bin/cat 파일에 직접 setuid비트를 설정하지 않고 심볼릭 링크를 만들어 심볼릭링크 파일에 setuid 비트 설정,

해제 시에도 심볼릭링크 파일에 해제

06.jpg

 

 

 

setgid 비트

- setgid 비트: 8진수 2000

- setuid 비트처럼 유효 그룹 ID(EGID)를 사용자의 실제 그룹 ID에서 파일 소유자의 그룹 ID로 변경함

- setgid 비트가 디렉토리에 설정되어 있으면, 이 디렉토리에 새로 설정된 파일들은 디렉토리 그룹 소유권 보다 파일 생성자의 그룹 소유권을 얻게 될 것

07.jpg

 

 

- 일반 파일 그룹의 멤버가 파일 소유자의 그룹과 상관없이 디렉토리 내의 모든 파일에 접근이 필요한 공유 디렉토리에 유용

 

1. setgid 비트 설정방법

- 8진수(2xxx)나 기호(g+s)를 이용하여 setuid 비트를 설정할 수 있음(setgid 비트 설정 제거 g-s)

- 권한 변경을 위해 chmod 명령어를 이용함

- setgid 비트가 설정되어 있으면 그룹 소유자 접근 권한의 실행 권한 자리에 실행 권한이 있으면 소문자 s로 실행권한이 없으면 대문자 S로 표시됨

08.jpg

 

 

 

 

 

2. setgid 비트 설정의 활용

1) 사용자 계정 생성시 mail spool 파일 생성

- 사용자 계정 생성시 옵션에 따라 /var/mail 디렉토리 하위에 생성하는 사용자 계정명과 동일명으로 mail spool 파일 생성

- /var/mail 디렉토리에 setgid 비트가 설정되어 있음, 하위에 생성되는 mail spool 파일의 그룹 소유주가 mail이 됨

09.jpg

 

 

sticky 비트

- sticky 비트: 8진수 1000

- 리눅스는 파일의 sticky bit는 무시

- sticky 비트는 특정 디렉토리를 누구나 자유롭세 사용 할 수 있게 하기 위함 (공용 디렉토리에 사용)

- 단, sticky 비트가 디렉토리에 적용되면 디렉토리 소유자나 파일 소유자 또는 슈퍼유저가 아닌 사용자들은 파일을 삭제하거나 이름을 변경하지 못하도록 막음, 파일 또는 디렉토리 생성은 누구나 할 수 있음

- sticky 비트를 공유모드라고도 함

 

1. sticky 비트 설정방법 및 활용

- 8진수(1xxx)나 기호(o+t 또는 u+t)를 이용하여 sticky 비트를 설정할 수 있음(sticky 비트 설정 제거 o-t 또는 u-t)

- 리눅스의 경우 o+t, 유닉스(솔라리스)의 경우는 u+t로 설정

- 권한 변경을 위해 chmod 명령어를 이용함

- sticky 비트가 설정되어 있으면 기타 사용자 접근 권한의 실행 권한 자리에 실행 권한이 있으면 소문자 t로 실행권한이 없으면 대문자 T로 표시됨

10.jpg

 

 

- /tmp 디렉토리 처럼 공용 디렉토리 접근에 활용

 

특수권한 파일 검색

- 특수권한 비트가 설정되어 있을떄 접근권한을 이용한 find 명령으로 파일을 검색을 할 수 있음

- 파일 검색 find 명령에 대한 참조(이전 글 참조)

 

1. 특수권한 비트 설정 파일검색 시 명령문 형식

- find [파일을 검색할 디렉토리 경로] -perm [접근권한] [-ls]

1) 파일을 검색할 디렉토리 경로는 생략 가능

- 절대경로로 지정하면 결과도 절대경로로 출력, 상대경로로 지정시 결과도 상대경로로 출력

- 생략 시 현재 디렉토리가 기준

2) -ls는 생략가능

-ls 시 검색 결과를 대상으로 ls 명령을 수행한 결과로 보여줌

 

2. 특수권한 비트 설정 파일검색 예제

11.jpg

 

출처 : http://eunguru.tistory.com/115

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.17 828687
2457 생활 되다 vs 돼다 JaeSoo 2017.12.14 8
2456 유닉스/리눅스 당장 firewall과 SELinux에 대해 설정하는 법을 모르니 최초 CentOS를 스터디할 땐 이 두 가지는 꺼버리자. JaeSoo 2017.12.02 24
2455 모바일 스마트폰 용량 부족 해결! SD카드를 내부저장소로 바꾸기 file JaeSoo 2017.11.14 47
2454 보안 Tear Drop 공격 JaeSoo 2017.11.14 56
2453 보안 Smurf 공격이란? JaeSoo 2017.11.14 58
2452 보안 DoS (Denial of Service) 공격이란? file JaeSoo 2017.11.14 60
2451 보안 DDos 공격 - LAND ATTACK이란 뭘까? file JaeSoo 2017.11.14 59
2450 네트워크 RIP (Routing Information Protocol), OSPF (Open Shortest Path First) JaeSoo 2017.11.14 38
2449 네트워크 STP (스패닝 트리 프로토콜) file JaeSoo 2017.11.14 38
2448 네트워크 [스위치] 스패닝 트리 ( STP - Spanning Tree Protocol ) file JaeSoo 2017.11.10 6
2447 네트워크 STP(Spanning-Tree Protocol) 동작원리 file JaeSoo 2017.11.08 8
2446 네트워크 [Windows NT] netstat 명령어를 이용한 라우팅 테이블 확인 file JaeSoo 2017.11.08 7
2445 네트워크 원격 액세스 인증 프로토콜 (EAP, MS-CHAP v2, CHAP, PAP) JaeSoo 2017.11.03 22
2444 보안 워드라이빙(WarDriving)과 해킹 file JaeSoo 2017.11.03 24
2443 네트워크 OSI model – Layer 4: Transport (TCP and UDP with Scapy) file JaeSoo 2017.11.03 28
2442 네트워크 TCP flag(URG, ACK, PSH, RST, SYN, FIN) JaeSoo 2017.11.03 33
2441 네트워크 OSI 7 Layer 개요 JaeSoo 2017.10.30 35
2440 유닉스/리눅스 Linux syslog-ng를 이용하여 로그서버 구축 JaeSoo 2017.10.27 39
» 유닉스/리눅스 [UNIX / Linux] 특수 권한(setuid, setgid, sticky bit) file JaeSoo 2017.10.24 35
2438 유닉스/리눅스 [unix 시스템 기초] 리눅스 의 기초 이론인 TTY와 PTS, PTY에 대해서 알아보자 JaeSoo 2017.10.18 46
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 123 Next
/ 123

 

■ 즐겨찾기 - 가족
JAESOO's HOMEPAGE YOUNGAE's HOMEPAGE 장여은 홈페이지 장여희 홈페이지 장여원 홈페이지

■ 즐겨찾기 - 업무
알리카페 홀릭 숭실대 컴퓨터 통신연구실 (서창진) 말레이시아 KL Sentral 한국인 GuestHouse

■ 즐겨찾기 - 취미
어드민아이디 유에코 사랑회 아스가르드 좋은사람/나쁜사람 JServer.kr 제이서버 메타블로그 재수 티스토리

■ 즐겨찾기 - 강의, 커뮤니티
재수 강의 홈페이지 한소리 VTMODE.COM 숭실대 인공지능학과 숭실대 통신연구실


PageViews   Today : 956   Yesterday : 1,895   Total : 60,499,629  /  Counter Status   Today : 198   Yesterday : 465   Total : 3,100,805
Site Info   Member : 1,388  /  Total documents : 7,074   New documents : 0  /  Total comments : 503

design by by JAESOO.com

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소