kjh00n의 기록저장소

Linux 권한 (소유권,허가권) 본문

Linux

Linux 권한 (소유권,허가권)

kjh00n 2024. 10. 23. 11:34

● 권한 : 특정사용자가 특정 자원이나 서비스, 기능, 환경에 접근 가능하도록 할지 말지 결정하는 논리적인 요소

※ 소유권과 허가권 둘 다 있어야 권한을 부여할 수 있다.


●소유권(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