✋🏻 리눅스마스터 2급 땄을 때 예전 기술블로그에 작성했던 내용을 옮겨온 것입니다.
**사용자 소유권과 그룹 소유권으로 나뉨**
**사용자/그룹/다른 사용자로 나누어 설정**
예) -rw-rw-r--.(허가권) 1 sook(그룹 소유권) sook (그룹 소유권) 90 Aug 6 12:46 sook.txt
rwx(사용자에게 적용) rwx(그룹에 속한 사용자), r--(타 사용자)
권한이 있는 경우에는 해당 권한을 대표하는 문자(read-r, write-w, x-execute)로 표기되고, 권한이 없는 경우에는 -로 표기.
**① 문자모드**
**② 숫자모드**
**사용 예**
$ chmod ugo+rwx aa.txt
: 모든 사용자에게 모든 권한을 줌.
$ chmod o=r /etc/fstab
: etc/fstab이라는 파일을 다른 사용자가 읽을 수만 있도록 설정/
$ chmod 66 aa.txt
: 'chmod 066 a.txt'과 같은 설정으로 소유자에게 어떠한 권한도 설정하지 않음.
**주요 옵션**
**사용 예**
$ chown 500 sook.txt
: sook.txt 파일의 소유자를 UID가 500인 사용자로 설정
**주요 옵션**
-R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 접근 권한을 변경
**주요 옵션**
-S : umask 값을 문자로 표기
**사용 예**
$ umask 022
: umask의 값을 022로 변경
Set-UID
보통 실행파일에 사용, 실행시킨 사용자의 권한이 아닌 해당 파일의 소유자 권한으로 인식.
소유자 권한 부분의 x자리에 s로 표기, 실행 권한이 없는 파일에 부여하면 대문자 S로 나타남.
Set-GID
Set-UID의 그룹 버전.
Set-GID가 파일에 설정되어 있을 경우 해당 파일을 소유한 그룹 권한으로 인식.
Set-GID는 주로 디렉터리에 설정, 디렉터리 소유 그룹 권한으로 만들어짐.
권한의 표시는 그룹 소유권 부분에서 x자리에 s로 나타나며,
실행 권한이 없을 경우에는 대문자 S로 표시
Sticky Bit
디렉터리에 설정되는 특수 권한.
공유 디렉터리로 사용됨. tmp 디렉터리에 기본적으로 설정됨.
이 권한이 설정된다면, 무조건 other 계층에 설정하도록 되어 있으며 설정하면 other 계층 권한 부분의 x 자리에 t로 표기.
other 계층에 실행 권한이 없는 경우, 즉 그룹의 공유 모드로 사용한 경우에는 대문자 T로 표기
Set-UID가 설정된 파일로는 passwd 명령이 있음.
→ /etc/shadow에 접근하려면 일시적으로 root 권한이 필요함.
Set-UID가 설정되어 있으면 일반 사용자라고 하더라도 명령을 실행하는 동안에는 파일의 소유자인 root의 권한으로 인정.
Sticky-Bit는 /tmp 디렉터리에서 확인 가능.
/tmp는 임시 저장 디렉터리로 X 윈도 실행 시에 필요한 소켓 등 일시적으로 시스템이나 응용 프로그램에 필요한 파일들이 저장되는 디렉터리임.
특정 응용 프로그램이 다른 응용프로그램에서 생성한 파일을 삭제하지 못하도록 하는 권한 설정이 필요.
특수권한(Set-UID, Set-GID, Sticky Bit)도 chmod 명령을 사용.
문자 모드인 경우
Set-UID 및 Set-GID는 s를 사용하고, Sticky-bit는 t를 사용
숫자 모드인 경우
천의 자리가 사용되고, Set-UID는 4, Set-GID는 2, Sticky-Bit는 1의 값을 가짐
**사용 예**
$ chmod 3070 /ssook
: /ssook이라는 디렉터리를 해당 그룹에 속한 사용자들만 접근하고, 파일을 생성/삭제할 수 있도록 함. 그룹 소유권을 Set-GID로 자동 지정하고 Sticky Bit로 공유하도록 함.