-
12. 특수 권한OS/Linux 기초 2019. 8. 28. 23:51
앞서 다룬 일반적인 권한 이외에 리눅스에는 특수 권한이라는 것이 있다.
특수한 상황에 부여되는 권한으로 SetUID, SetGID, sticky bit으로 구분된다.
(1) SetUID
파일을 실행하는 동안(일시적) 해당 파일의 소유자 권한을 얻는다.
주로 실행 파일에 설정한다.
*형식
-> 소유자 권한 부분의 x 자리에 s(소문자) 또는 S(대문자)로 표기 된다.
-> x 권한이 있으면 s(소문자) //rws rwx rwx
-> x 권한이 없으면 S(대문자) //rwS rwx rwx
-> 권한값은 4000대를 사용하며 기존 허가권 앞에 4를 붙이면 된다.
ex) rwsrwxrwx == 4777
rwSrwxrwx == 4677
*실습
/usr/bin/passwd 허가권에 따른 다음 두 작업의 가능 여부를 판단한다.
korea 사용자로 putty접속 후 passwd 명령어를 입력해 본다.
/usr/bin/passwd 허가권 명령 실행 비밀번호 변경 4755 (rws rwx rwx) O O 755 (rwx rwx rwx) O X 4750 (rws r-x ---) X X => 명령 실행은 other의 x권한, 비밀번호 변경은 owner의 s권한에 따른다.
-> /usr/bin/passwd는 계정의 비밀번호를 변경할 수 있도록 하는 명령어 실행 파일이다.
-> 사실상 비밀번호를 변경할 수 있는 권한은 root만이 가지고 있다.
-> 하지만, SetUID를 적용시키면 다른 계정(korea)도 자신의 비밀번호를 변경할 수 있다.
=>SetUID: 로그인한 사용자와 관계없이 프로그램의 소유자 권한(root)으로 프로그램을 실행시켜 줄 수 있는 권한
(2) SetGID
파일을 실행하는 동안(일시적) 해당 파일의 소유자 그룹 권한을 얻는다.
주로 디렉토리에 설정한다.
일반적으로 korea 계정으로 접속한 다음 파일을 만들면 그 파일의 소유권은 korea:korea 이다.
하지만 권한이 2777인 경우 파일을 만들면 그 파일의 소유권은 korea:root로 설정된다.
*형식
-> 그룹 권한 부분의 x 자리에 s(소문자) 또는 S(대문자)로 표기 된다.
-> x 권한이 있으면 s(소문자) //rwx rws rwx
-> x 권한이 없으면 S(대문자) //rwx rwS rwx
-> 권한값은 2000대를 사용하며 기존 허가권 앞에 2를 붙이면 된다.
ex) rwx rws rwx == 2777
rwx rwS rwx == 2677
=> SetUID, SetGID는 주로 root소유의 프로그램 파일에 설정한다.
(3) sticky bit
게시판 성격의 특수 권한으로 관리자(root)와 소유자만 자료 삭제 및 수정이 가능하다.
디렉토리 안에 누구나 파일을 생성할 수 있지만 삭제는 본인과 관리자만 가능한 것이다.
주로 여러 사람이 함께 사용하는 공용 디렉토리 허가권으로 설정한다.
*형식
-> other 권한 부분의 x 자리에 t(소문자) 또는 T(대문자)로 표기 된다.
-> x 권한이 있으면 t(소문자) //rwx rwx rwt
-> x 권한이 없으면 T(대문자) //rwx rwx rwT
-> 권한값은 1000대를 사용하며 기존 허가권 앞에 1를 붙이면 된다.
ex) rwx rwx rwt == 1777
rwx rwx rwT == 1677
'OS > Linux 기초' 카테고리의 다른 글
14. umask (0) 2019.09.01 13. ACL (Access Control List) (0) 2019.09.01 11. 권한_소유권(ownership) (0) 2019.08.28 10. 권한_허가권(permission) (0) 2019.08.26 9. 사용자 (0) 2019.08.25