본문 바로가기
정보보안기사&CISSP관련/System Security

[Day 66] 프로세스 실행 권한(SUID, SGID)

by minimalist_2022 2020. 10. 15.

RUID, RGID. EUID, EGID

  • 유닉스/리눅스 시스템에서 프로세스의 자원에 대한 접근권한을 판단하기 위해 부여하는 ID
    • RUID(Real User ID) : 프로세스를 실행시킨 사용자 아이디
    • RGID(Real Group ID) : 프로세스를 실행시킨 사용자의 기본 그룹 아이디
    • EUID(Effective ID) : 프로세스가 실행되는 동안에만 부여되는 UID. 자원(파일 등)에 대한 접근권한을 판단하기 위한 UID
    • EGID(Effective ID) : 프로세스가 실행되는 동안에만 부여되는 GID. 자원(파일 등)에 대한 접근권한을 판단하기 위한 GID

 

SUID(Set UID), SGID(Set GID)

  • 프로세스가 실행중인 동안에 해당 실행파일의 소유자, 소유그룹의 권한으로 자원에 접근할 수 있도록 하는 권한 설정
  • SUID,SGID가 설정되지 않은 프로세스를 실행시키면 RUID와 EUID, RGID와 EGID는 각각 동일하게 설정됨. 즉, 실행시킨 소유자의 권한으로 자원에 접근
  • SUID, SGID가 설정된 프로세스를 실행시키면 RUID, RGID는 실행시킨 사용자의 UID, GID로 설정되고, EUID. EGID는 실행파일의 소유자 UID, GID로 설정됨. 즉, 파일의 소유자 권한으로 자원에 접근하게 됨
  • 만약 root권한이 필요없는 프로그램인데, 소유자가 root이고 suid가 설정되어 있으면 보안에 매우 취약함

 

SUID, SGID 설정

  • 755 접근권한 a.out 파일에 suid 설정 : chmod 4755 a.out
  • 755 접근권한 a.out 파일에 suid, sgid 설정 : chmod 6755 a.out 또는 chmod ug+s a.out