linux 특수권한
이번 포스트에서는 특수권한에 대해서 포스트 해보도록 하겠습니다.
기존 권한은 user, group, other 이렇게 세가지로 나뉘어져 있죠?
이렇게 나뉜 권한 중 특정한 문자가 들어가면 특수한 권한이 만들어지는데 특수권한의 종류는 다음과 같습니다.
SETUID
일시적인 사용자 권한
소유자만 접근 가능한 파일에 일반 유저로 접근이 필요할 때 사용
user 의 접근권한 x 자리에 s 가 대신 들어가면 setuid
대문자 S가 들어가면 일반 권한의 -(접근 권한 없음)과 같은 의미
맨 앞에 숫자 4를 붙여서 읽는다
ex) rws rwx rwx (4777)
SETGID
일시적인 그룹 권한
소유자만 접근 가능한 파일에 일반 유저로 접근이 필요할 때 사용
user 의 접근권한 x 자리에 s 가 대신 들어가면 setuid
대문자 S가 들어가면 일반 권한의 -(접근 권한 없음)과 같은 의미
맨 앞에 숫자 2를 붙여서 읽는다
ex) rwx rws rwx (2777)
STICKY BIT
디렉터리 내에 파일을 보호하기 위한 목적
디렉터리 파일에만 설정 가능
root와 파일소유자만 삭제 가능
일반적으로 모든 사용자가 접근할 수 있는 /tmp /var 등등이 sticky bit 지정
맨 앞에 숫자 1를 붙여서 읽는다
ex) rwx rwx rwt (1777)
setiuid 에 대해서 어떻게 돌아가는지 한번 확인해보겠습니다.
저희가 계정을 만들고 사용하려면 패스워드 지정이 필요한데 위와 같이 패스워드 실행파일이 rwsr-xr-x 즉 setuid 특수권한으로 설정되있는 것을 볼 수 있네요. user 말고 다른 other 계정으로도 패스워드가 지정되는지 보겠습니다.
특수권한은 냅두고 other 권한만 지워봤습니다. (chmod 4750)
passwd 사용이 차단된 모습을 볼 수 있죠. 특수권한이 지정되어 있어도 other 권한이 - 이면 사용할 수 없다는 사실을 알 수 있죠!
setgid 는 uid 와 비슷한 개념이고 그룹의 권한이라는 점만 빼면 비슷하기 때문에 넘어가겠습니다.
다음은 sticky bit 설정을 한번 실습해 보겠습니다.
sticky bit는 디렉터리 파일에만 설정이 가능하기 때문에 새로운 디렉터리를 만들어서 실습해 보겠습니다.
sticky 라는 디렉터리를 만들고 특수권한 sticky bit를 준 모습입니다. 원래의 권한이라면 그룹이든 other 사용자든 이 디렉터리에 대한 읽고 쓰고 지우는게 가능해야 하는데요.. root 계정으로 파일을 만들고 user1 계정으로 확인을 해보겠습니다.
ㅠㅠ other 계정으로 root 홈디렉터리에 들어가지 못한다는걸 깜빡해서 다시 최상위 디렉터리 / 로 디렉터리를 옮겨서 확인해봤습니다. user1 계정으로 들어가서 root 계정으로 만든 파일을 확인했으나 삭제를 시도하니 제한이 걸려있는 모습을 볼 수 있습니다!
이렇게 디렉터리 내의 파일을 보호하기 위한 방법으로 쓰면 좋겠지요. 권한변경으로 특수권한 지정을 없애주면 다른 사용자도 파일을 지울 수 있겠죠?
이상으로 특수권한 포스트를 마치겠습니다!
'OS > linux' 카테고리의 다른 글
linux 변수 +환경변수 (0) | 2016.09.29 |
---|---|
linux 프로세스 (0) | 2016.09.29 |
linux 사용자 패스워드 (0) | 2016.09.29 |
linux 사용자와 그룹 (0) | 2016.09.27 |
linux 파일의 권한 (0) | 2016.09.27 |