-
[Linux] 권한과 특수권한IT 공부방 [기본지식 정리]/리눅스 서버 2019. 5. 6. 16:33
1. 일반 권한
1) 권한 표현 방법
ls -al 명령으로 보면 알겠지만 각 파일이나 디렉토리마다
drwxr-xr-x 와 같은 형식을 가지는 문구가 있는 것을 볼 수 있다.
이 부분을 상세히 보자면
d rwx r-x r-x
d : 파일 타입 부분
rwx : 소유권자에 대한 권한 부분
r-x : 소유그룹에 대한 권한부분
r-x : 나머지 접근하는 모든 사용자에 대한 권한 부분
이렇게 나눠 볼 수 있으며
파일 타입 부분 : d(디렉토리), -(일반 실행 파일), b(블럭형 장치 파일), c(문자형 장치파일)
l(심볼릭 링크 파일), s(통신 소켓 파일), p(파이프 파일)
소유권자 부분 : -(권한 없음), r(읽기 권한), w(쓰기 권한), x(실행 권한)
[** 단 현재 접근한 계정이 접근한 파일의 소유권자와 일치할 경우 적용된다.]
소유그룹 부분 : -(권한 없음), r(읽기 권한), w(쓰기 권한), x(실행 권한)
[** 단 현재 접근한 계정이 접근한 파일의 소유그룹에 포함될 경우 적용된다.]
나머지 사용자 부분 : -(권한 없음), r(읽기 권한), w(쓰기 권한), x(실행 권한)
[** 위의 2가지 사항에 속하지 않는 나머지 사용자들에 대해 적용하는 부분이다.]
2. 특수 권한
** 알고가기)
Symbolic 표기 방식 -> rwx rwx rwx
Numeric 표기 방식 -> 7 7 7 [이 부분에 대한 자세한 설명은 구글링~]
일반권한은 rwx rwx rwx (3+3+3) 총 9bit 이다.
일반권한을 Numeric으로 표기하면 777 (이렇게 주며 사실상 0777인 상태라고 볼 수 있다.)
특수권한은 -rwx -rwx -rwx (4+4+4) 총 12bit 이다.
특수권한을 Numeric으로 표기하면 0777 (특수권한이 설정되지 않은 상태)
1) Set Uid
현재 접근하는 사용자가 아니라 파일/디렉토리 소유권자가 대신 수행해준다. (x 권한)
일반적으로 root가 소유권자인 파일들을 일반 사용자가 1회성으로 실행할 수 있게 하기 위함이다.
-> 실 사용자 ID(RUID)를 가진 유효 사용자ID(EUID)가 실행하는 순간만 잠시 바뀜.
(일반 사용자에게 대놓고 루트 관리자의 권한을 줄 수 없기 때문임)
Symbolic 표기 방식으로는 S나 s로 표기된다. ex) rws / rwS
Numeric 표기 방식으로는 4000으로 표현된다.
testfile의 경우 chmod 4644 testfile로 접근권한을 주었고
testfile2의 경우 chmod 4744 testfile2로 접근권한을 주었다.
그 결과,
testfile은 대문자로 표기되었고 / testfile2는 소문자로 표기되었다.
이 두가지의 차이는 실행권한을 주고 안주고의 차이이다.
testfile의 경우 소유권자의 실행 권한을 주지 않았기 때문에 setuid를 설정하더라도 실행되지 않음
testfile2의 경우가 제대로 된 사용 방법이다.
2) Set Gid
현재 접근하는 사용자가 아니라 파일/디렉토리 소유그룹이 대신 수행해준다. (x 권한)
일반적으로 root가 소유그룹인 파일들을 일반 사용자가 1회성으로 실행할 수 있게 하기 위함이다.
-> 실 사용자 ID(RGID)를 가진 유효 그룹ID(EGID)가 실행하는 순간만 잠시 바뀜.
(일반 사용자에게 대놓고 루트 관리자의 권한을 줄 수 없기 때문임)
Symbolic 표기 방식으로는 S나 s로 표기된다. ex) rws / rwS
Numeric 표기 방식으로는 2000으로 표현된다.
testfile의 경우 chmod 2464 testfile로 접근권한을 주었고
testfile2의 경우 chmod 2474 testfile2로 접근권한을 주었다.
그 결과,
setUid의 경우와 같이 표기되었다. (단지 소유권자 / 소유그룹 위치의 차이 뿐이었다.)
이것 또한 기본적으로 소유그룹에 x 권한을 같이 주어야 한다.
3) Sticky bit
접근하는 누구나 생성, 읽기는 가능하지만 / 수정 및 삭제는 불가능하게 한다.
일반적으로 공용 디렉토리에 많이 사용한다. (/tmp, /network공유폴더)
Symbolic 표기 방식으로는 T나 t로 표기된다. ex) rwt / rwT
Numeric 표기 방식으로는 1000으로 표현된다.
testfile의 경우 chmod 1446 testfile로 접근권한을 주었고
testfile2의 경우 chmod 1447 testfile2로 접근권한을 주었다.
그 결과, 위와 같다.
다만 Sticky bit 같은 경우는 파일보다 디렉토리에 활용이 많이 되며
누구나 자유롭게 이용 가능한 환경을 제공해 줄 때 사용한다.
'IT 공부방 [기본지식 정리] > 리눅스 서버' 카테고리의 다른 글
[Linux] 하드디스크 / 마운트 명령 (0) 2019.05.08 [CentOS 7] 계정 관련 명령/문서 (0) 2019.05.07 SELINUX란? (0) 2019.05.06 [CentOS 7] 리눅스의 로그 종류 (0) 2019.05.06 [Centos 7] single boot로 패스워드 초기화 (0) 2019.05.05