2015. 4. 3. 13:20 :: 운영체제

확장권한(Permission)

파일과 디렉토리의 권한을 확인하다 보면 때때로 일반적인 읽기(r), 쓰기(w), 실행(x) 권한 이외의

다른 문자가 부여되어 다른 권한의 파일이나 디렉토리를 확인할 수 있습니다.

아래와 같이 사용자 필드에 실행 권한(x) 대신 (s) 권한이 있습니다. 이를 setuid(set user id)라고 부릅니다.

- r w s r w x r w x

 

아래와 같이 사용자 그룹 필드에 실행 권한 대신 (s) 권한이 있습니다. 이는 setgid(set group id)라고 합니다.

- r w x r w s r w x

 

아래와 같이 기타 사용자 필드에 실행 권한 대신 t 권한이 있습니다. 이는 sticky bit라고 합니다.

 - r w x r w x r w t

 

 

1. 확장 권한(Permission)의 표기법

읽기(r), 쓰기(w), 실행(x) 권한을 8진수 표기법(Octal Mode)으로 읽기는 4, 쓰기는 2, 실행은 1로 표기하듯이

확장 권한 역시 8진수 표기법으로 setuid는 4000, setgid는 2000, sticky bit는 1000으로 표기합니다.

 

1) setuid 표기법

setuid는 사용자의 실행(x) 권한을 포함하는 권한입니다.

일반적인 권한 8진수 표기법이 777일때,

setuid의 8진수 4000을 더해서 4777로 표현할 수 있습니다.

 

2) setgid 표기법

setgid는 사용자 그룹의 실행(x) 권한을 포함하는 권한입니다.

일반적인 권한 8진수 표기법이 777일때,

setgid의 8진수 2000을 더해서 2777로 표현할 수 있습니다.

 

3) sticky bit 표기법

sticky bit는 사용자의 실행(x) 권한을 포함하는 권한입니다.

일반적인 권한 8진수 표기법이 777일때,

sticky bit의 8진수 1000을 더해서 1777로 표현할 수 있습니다.

 

     4) 확장권한 표기법 예제

    

 

2. 확장 권한의 변경

확장 권한이나 일반 권한은 chmod 명령을 사용하여 변경합니다.

 

1) 심볼릭모드 설정

 

2) 8진수 모드로 설정

 

3) 다른 확장 권한 형태

setuid는 대문자 S, setGid는 대문자 I, sticky bit는 대문자 T로 표기가 되어 있는것을 볼 수 있습니다.

이것은 실행(x) 권한이 없는 확장 권한을 나타냅니다.

 

3. 확장 권한의 의미

1) setuid 의미

만약 어떤 파일에 setuid가 설정되어 있다면, 그 파일의 사용자 이외의 모든 사용자가

파일을 실행할 때 마치 파일의 사용자인 것처럼 파일을 실행하게 됩니다.

즉, 파일을 실행할 때 사용자 자신의 고유 UID를 사용하는 것이 아니라

파일의 inode 정보로부터 파일 사용자의 UID를 받아서 파일을 실행하게 됩니다.

 

2) setgid 의미

setuid와 비슷하게 파일에 setgid가 설정되어 있다면, 파일을 실행할 때 마치 파일의

사용자 그룹인 것처럼 파일을 실행하게 됩니다. 즉, 사용자의 GID가 아닌 파일의

inode정보로부터 파일 사용자그룹의 GID로 파일을 실행하게 됩니다.

 

3) sticky bit 의미

sticky bit는 해당 파일이나 디렉토리에 설정되어 있으면 쓰기(w) 권한이 있다고 하더라도

파일의 사용자 이외에 삭제가 불가능합니다. 이는 흡사 인터넷에 공개된 게시판과도 유사합니다.

누구나 글쓰기를 허용하되, 글의 삭제는 관리자와 글을 쓴 사용자만이 삭제할 수 있도록

하는 것입니다. 디렉토리에 sticky bit를 사용하면 임시 작업 공유를 위ㅐ서나 프로젝트를 진행할 때에도

유용하게 사용할 수 있습니다.  

 

 

# 참고서적 : 유닉스 관리자를 위한 엔터프라이즈 솔라리스 핵심 운영 가이드2 / 김석, 박찬주, 장성균 공저

 

posted by Red_Message