kjh00n의 기록저장소
Linux 권한 (소유권,허가권) 본문
● 권한 : 특정사용자가 특정 자원이나 서비스, 기능, 환경에 접근 가능하도록 할지 말지 결정하는 논리적인 요소
※ 소유권과 허가권 둘 다 있어야 권한을 부여할 수 있다.
●소유권(ownership) - 변경 가능
→ 해당객체(파일,디렉토리)의 소유자가 누구인지,소유그룹이 누구인지를 명시하는 값
→ 특정사용자가 특정 파일에 접근시 해당 사용자가 소유자인지, 소유그룹인지, 나머지 사용자인지를 구별
→ 구별하는 이유 : 사용자가 누구인지에 따라 권한을 다르게 부여하기 위해서
→ 소유자(user) : 객체(파일,디렉토리)를 생성한 사용자(계정)가 보통 소유자가 된다.
→ 소유 그룹(group) : 객체(객체,디렉토리)를 생성한 사용자(계정)의 기본 그룹이 보통 소유 그룹이 된다.
→ 나머지 사용자(other) : 소유자도,소유 그룹도 아닌 사용자
EX) -rw-------. 1 root(소유자) root(소유 그룹) 1097 1월 26 2024 anaconda-ks.cfg
● 소유권 확인 명령어
ls -l 파일명
ls -ld 디렉토리명
● 소유권 변경 명령어
chown [옵션] [(바꾸려는)계정명] [파일명]
● 소유그룹 변경 명령어
chown [옵션] :[(바꾸려는)그룹명] [파일명] <-----콜론이 들어간다
(잘 안씀)chgrp [옵션] [그룹명] [파일명] <------얘는 콜론 없음
● 소유자,소유그룹을 동시에 변경
chown [옵션] [계정명]:[그룹명] [파일명]
[-R] | 하위 디렉토리 및 파일 전체의 소유권 변경 |
● 허가권(permission)
→ 사용자가 해당 객체(파일,디렉토리)에 어떤 행위를 할 수 있는지 없는지 결정하는 요소
→ 읽기 권한(read), 쓰기 권한(write), 실행 권한(execute)
→ 사용자에게 허가권을 부여하여 해당 사용자가 부여된 권한에 따라 행위를 할 수 있다.
→ 사용자가 누구냐에 따라서 허가권을 부여하는 것이 아니라 해당 사용자가 접근하는 객체(파일,디렉토리)의 소유권이
무엇이냐에 따라 허가권을 부여한다.
→ 허가권의 구성 종류는 크게 3가지 - 소유자(3개),소유그룹(3개),나머지 사용자(3개)
→ 특정 객체에 부여된 허가권은 총 9개 - 소유자(rwx),소유그룹(rwx),나머지(rwx)
EX) drwxr-xr-x 2 root ktest 36 10월 23 18:33 dir1 -----> rwx는 소유자 / r-x는 소유그룹 / r-x는 나머지 사용자
● 객체에 따라 허가권의 의미
파일
- 읽기 : 파일의 내용을 확인
- 쓰기 : 파일의 내용을 수정(생성,변경,삭제)
- 실행 : 실행 파일을 실행할 수 있는 권한
디렉토리
- 읽기 : 해당 디렉토리 하위의 파일 목록을 확인(ls)
- 쓰기 : 해당 디렉토리 하위에 파일을 수정(생성,삭제)
- 실행 : 해당 디렉토리로 이동할 수 있는 권한(경로 변경)(cd)
※ root는 초월한 계정임. 수정이 불가능함에도 수정이 가능하다
dr-xr-x---. 16 root root 4096 10월 23 18:32 /root
사용자가 객체에 접근할 때 소유자인지 확인 -> 소유자면 소유자의 권한(허가권) 부여
-> 소유자가 아니면 소유 그룹을 확인 -> 소유 그룹이면 그룹의 권한부여
-> 소유그룹도 아니면 -> 나머지 사용자의 권한 부여
※ 소유자인지 아닌지 확인하는 법은 UID가 같은지 UID가 다르면 GID가 같은지를 구분한다.
※ UID와GID가 다르면 나머지 사용자로 구분한다.
● 허가권 변경 명령어
chmod [허가권] [파일명]
허가권 - 절대모드(고정) / 상대모드(현재 허가권에 따라서 바뀜)가 있다.
상대모드 : 이미 있는 허가권을 기준으로 허가권을 추가,삭제하는 방식
연산자 = : user에 rwx가 있는 상태에서 u=r이라고 입력하면 r--만 남는다.
[root@localhost /]# chmod 763 file1
[root@localhost /]# ls -l file1
-rwxrw--wx 1 root root 12 10월 23 19:41 file1
[root@localhost /]# chmod u=r file1
[root@localhost /]# ls -l file1
-r--rw--wx 1 root root 12 10월 23 19:41 file1
절대모드 : 이미 있는 허가권과 상관없이 원하는 허가권을 부여,설정하는 방식
● 기본 권한이 설정되어 있는 곳
umask [값]
umask를 치면 0022가 나온다.
모든권한을 갖고 있는 코드가 777인데 777에서 022를 빼면 755가 된다.
755는 디렉토리를 생성하면 기본적인 권한이 설정된다.
※ 디렉토리의 기본권한은 777에서 umask 값을 뺀 권한이다. --->755
※ 파일의 기본권한은 666에서 umask 값을 뺀 권한이다. --->644
※ 모든 리눅스에서 기본설정은 755,644로 설정되어 있다.
※ 파일은 왜 666일까?
실행파일이 아니기에 실행(1)이 없다. (일반 파일이 더 많기에 처음부터 실행권한은 주지 않는다)
디렉토리의 실행권한은 이동이고 파일의 실행권한은 파일을 실행하는 것이다.
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
파일
- 읽기 : 파일의 내용을 확인
- 쓰기 : 파일의 내용을 수정(생성,변경,삭제)
- 실행 : 실행 파일을 실행할 수 있는 권한
디렉토리
- 읽기 : 해당 디렉토리 하위의 파일 목록을 확인(ls)
- 쓰기 : 해당 디렉토리 하위에 파일을 수정(생성,삭제)
- 실행 : 해당 디렉토리로 이동할 수 있는 권한(경로 변경)(cd)
umask값을 0033으로 바꾸고 디렉토리를 생성해보면 744인데 파일은 644가 나온다.원래는 633이 나와야했다.
파일은 실행권한을 안주려고 umask값을하는건데 umask를 0033으로 바꿔버리면 실행권한이 주어진다.
→ 그래서 실행권한을 주지 않기 위해서 file의 초기값인 666 값을 677로 바꿔버린다.
→ file의 특징이다. 잘못된게 아니다.
'Linux' 카테고리의 다른 글
Linux 특수 권환 (0) | 2024.10.23 |
---|---|
실습5 (0) | 2024.10.23 |
실습4 (0) | 2024.10.22 |
그룹관련 실습 (0) | 2024.10.22 |
Group 관리 명령어 (0) | 2024.10.22 |