0. 권한
- 파일/디렉토리를 사용할 수 있는지 여부를 정하는 개념
- 허가권과 소유권으로 구분
> 허가권 + 소유권 = 권한
1. 허가권
- ls -l 명령을 입력했을 때 나오는 출력 내용 중 개체 형식을 나타내는 첫글자 뒤에 오는 9개 글자가 허가권
- 8가지 문자로 권한을 표현 : r, w, x, -, s, S, t, T
r, w, x, - : 일반 권한 표현 문자
s, S, t, T : 특수 권한 표현 문자
- r : 읽기, w : 쓰기, x : 실행/접근, - : 권한없음
r : 파일 → 파일 내용읽기 ; cat, head, tail, more, less, vi로 열었을 때 등
디렉토리 → 디렉토리 내부 목록 확인 ; ls, GUI 환경에서 폴더에 들어갔을 때 등
w : 파일 → 파일 내용 수정 ; 문서 편집 후 저장, > 기호를 이용하여 덮어쓰기/내용추가 등
디렉토리 → 디렉토리 내부 목록을 수정 ; 디렉토리 내부 하위 파일/디렉토리 생성 및 삭제 등
x : 파일 → 실행 ; 파일 x가 없으면 일반 문서 파일, 파일에 x가 있으면 실행 파일
디렉토리 → 접근 ; 디렉토리가 x가 없으면 디렉토리 자체 및 내부의 항목들을 사용할 수 없다
- 9자리의 권한 문자를 3개씩 끊어서 Owner, Group, Other 영역으로 구분
> 각 영역에는 r, w, x가 순서대로 들어가고, 특정 권한이 없다면 해당 위치에 - 이 들어간다
Owner : 소유자(파일/디렉토리를 소유 중인 사용자)를 위한 권한
Group : 그룹 사용자(파일/디렉토리를 소유 중인 그룹에 소속된 사용자)를 위한 권한
Other : 그 외 사용자(Owner, Group 둘 다 해당되지 않는 사용자)를 위한 권한
* 3개의 영역 중 어느 영역의 권한을 적용 받는지에 대한 내용은 소유권에서 결정
# 권한 표현 방법
문자를 이용한 방법 : r, w, x, - 문자를 차례대로 읽어주는 방법
숫자를 이용한 방법 : 문자를 바탕으로 숫자 값을 계산
* 계산방법
1) 영역분리
2) r = 4, w = 2, x = 1, - = 0을 각 영역의 문자에 대입후 영역별로 합 계산
3) 각 영역에서 구한 값에 Owner는 100, Group은 10 ,Other는 1을 곱해서 전체 합을 계산
ex)
1. rwxr-xr-x > 755
421 401 401
7 5 5
700 50 5 = 755
2. rw-r--r-- > 644
3. 375 > -wxrwxr-x
# 허가권 변경
chmod [옵션] 권한값 대상 [대상] ... [대상]
* 권한 값을 숫자/문자로 입력
숫자로 입력하면 numeric method ; 변경한 권한 전체를 숫자로 입력
문자로 입력하면 symbolic method ; 영역 문자에 필요한 권한을 +. - 기호를 이용하여 더하거나 빼준다.
> symbolic method 에서 사용하는 영역 문자
u : Owner
g : group
o : other
chmod 646 test
chmod g+w test
chmod g+rx-w test 묶어서 가능
chmod u-r,g-w+rx,o+r-x test 콤마로 연결 가능
chmod u=w,g=rx,o=rw inittab =으로 한번에 지정가능
2. 소유권
- 파일 / 디렉토리를 어느 사용자와 그룹이 소유하고 있는지 나타내는 권한
> ls -l 명령으로 출력되는 정보 중 랭크 개수 뒤에 나오는 사용자명과 그룹명이 소유권
- 소유권을 두 개의 영역으로 구분
> 앞에 나오는 정보가 계정명(UID), 파일/디렉토리를 소유하고 있는 사용자
뒤에 나오는 정보가 그룹명(GID), 파일/디렉토리를 소유하고 있는 그룹
- 소유권 변경
chown [옵션] 권한값 대상 [대상] ... [대상]
* 권한값 작성 방식
UID > 소유권의 UID 지정 ( : 기호 대신에 . 기호 사용가능)
UID:GID > 소유권의 UID, GID 지정
UID: > 소유권의 UID, GID를 특정 사용자의 UID, GID를 소유권에 넣어줌
:GID > 소유권의 GID 영역 변경
## 허가권과 소유권이 적용되는 방식 (중요 !!!)
1) 작업 주체와 작업 대상을 추려내고 그 둘의 UID, GID 확인
작업 주체 : 작업을 수행하는 (= 명령을 입력하는) 사용자 >> 사용자 정보 중 UID, GID(/etc/passwd 파일, id 명령어)
작업 대상 : 작업(=명령)의 대상이 되는 파일/디렉토리 >> 소유권의 UID, GID(ls 명령어 -l 옵션이나 -n 옵션)
2) 작업 주체와 작업 대상의 UID, GID 비교
ㄱ) UID 비교 >> UID가 일치하면 Owner 영역 권한 적용, 일치하지 않으면 GID 비교
ㄴ) GID 비교 >> GID가 일치하면 Group 영역 권한 적용, 일치하지 않으면 other 영역 권한 적용
* root 사용자는 권한의 영향을 받지 않는다.
3. 특수 권한
- 특이한 동작을 하는 권한
- setUID, setGID, sticky bit 3가지의 특수 권한이 있다.
4777 r w s r w x r w x : setUID
2777 r w x r w s r w x : setGID
1777 r w x r w x r w t : sticky bit (setbit)
* x 위치의 문자가 s/S/t/T로 변경
(이때, x권한이 있는 상태였다면 소문자 s,t를 사용하고 x권한이 없는 상태였다면 대문자 S/T를 사용)
ex>
rwsr-xr-x : 4755
rwSr-xr-x : 4655
# sticky bit
- 디렉토리에 설정하는 특수 권한
- 디렉토리 내부에 파일/디렉토리 생성은 권한만 있으면 누구나 가능하지만
파일/디렉토리 삭제는 대상의 소유자(소유권의 UID)와 관리자만 가능
# setUID
- 실행 파일에 설정하는 특수 권한
- 파일이 동작하는 동안 owner의 권한을 사용할 수 있도록 해주는 특수 권한
> 동작하는 동안 owner가 된다라고 생각
# umask
- 생성하는 파일/디렉토리의 허가권을 제어하는 값
> 사용자 계정마다 부여되어 있는 값
- 파일/디렉토리의 일반적인 최대 권한 값에서 생성 작업을 입력한 사용자의 umask 값을 뺀 나머지가
만들어질 파일/디렉토리의 권한 값
(일반적인 파일 최대 권한 : 666, 디렉토리 최대권한 : 777)
- 숫자로만 보고 계산을 하면 절대로 안됨
(파일의 기본 권한에는 x가 없기 때문에 계산을 하지 않음)
ex>
형식
umask : 현재 사용자의 umask 값 확인
umask <값> : 현재 가용자의 umask 값 변경
'Base > Linux(CentOS)' 카테고리의 다른 글
8. 파티션과 마운트 (Partition / mount) (0) | 2022.06.21 |
---|---|
7. 응용프로그램 설치 tar/ rpm/ yum (0) | 2022.06.20 |
5. 사용자계정과 그룹 (0) | 2022.06.19 |
4. VI(M) 에디터 (0) | 2022.06.18 |
3. 기본 명령어 모음 (0) | 2022.06.18 |
댓글