(Week 2 - Day 5) - (1/2)

1. 퍼미션

- 리눅스는 다중 사용자 로그인을 지원한다.

- 퍼미션과 소유권을 통해서 파일에 대한 접근을 제어한다.

- 퍼미션과 소유권 확인 : ls -l

 

- 처음부터 root로 접속을 해서 관리자 권한으로 작업을하면

실수를 할 때, 큰 문제를 야기할 수 있다.

- 그래서 필요할 때만 sudo를 써서 해야한다.

2. Access Control

- 접근 제한

- 보안의 기본적인 요소

- Identification (식별)

- Authentication (인증)

지식기반 : Password

소유기반 : OTP

생채기반(소유에 속함) : 지문, 홍채

지식기반이 가장 보안등급이 낮음

FA -> Factor Auth

- 2FA / MFA

- 2개 이상의 인증방식을 섞어서 쓰는 접근 제어 방식

2.1. DAC

- discretionary Access Control

- 임의적 접근제어

- 가장 기본적인 접근제어 방법

- 각자가 자기의 소유권을 가지고 있는 것을 알아서 접근제어 한다.

3. MAC

- Mandatory Access Control

- 강제적 접근제어

- 상업용 운영체제에서는 볼 수는 없다.

- 사용자의 등급과 데어터의 등급으로 접근 제어를 한다.

- 중앙통제

4. Non-DAC

- 비임의적 접근 총제

RBAC

- role based access control

- 역할 기반 접근제어

- 다중 사용자, 다중 프로그래밍 환경에서 사용자 역할에

기반을 두고 접근을 통제

 


5. 퍼미션

파일과 디렉토리는 둘다 파일이긴하다. 

하지만 파일과 디렉토리의 rwx는 각각 의미가 조금 다르다.

퍼미션 파일 디렉토리
r 파일 내용 읽기(cat, more, head ...) 디렉토리 내 파일 정보 확인(ls)
w 파일 내용 편집((vim, redirect ...) 파일 생성 및 삭제(cp, mv, rm ...)
x 실행파일 경우에만 실행 디렉토리 접근(cd)

5.1. 파일

- 실행파일은 실행하기 위해서 읽기 권한을 가지고 있어야한다. 

실행하기 위해서는 파일의 내용을 읽어야 하기 때문이다.

- 수정하기 위해서도 먼저 읽어야 수정할 수 있기 때문에 읽기 권한이 필요하다. 

읽고서 메모리에서 내용을 변경하는 것은 w권한 까진 필요없다. 

수정된것을 실제로 반영할때 그때 w 권한이 필요하다.

- 실행파일은 변경될 이유가 없다. 그래서 쓰기 권한을 주지 않는다.

5.2. 디렉토리

- 디렉토리는 실제로 `inode number - 파일이름` 을 가지고 있다.

- 기본적으로 디렉토리는 r-x권한을 가져야 한다.

- 추가적으로 해당 디렉토리의 변경을 할수 있어야 한다.


6. 권한 변경 명령어

6.1. rwx/rwx/rwx:

1. owner와 접근하는 사람이 같은가

2. group과 접근하는 사람의 그룹이 같은가

3. 기타 사용자

- 위 순서대로 소유자와 소유 그룹이 같으면 소유자 퍼미션을 따른다.

6.2. chmod

- 퍼미션 설정

- change mode

- 소유자 또는 관리자가 할 수 있다.

6.2.1. 심볼릭 모드

속성
Who u(소유자), g(소유 그룹), o(기타), a(모두)
What +(추가), -(제거), =(초기화 및 세팅)
Which r(읽기), w(쓰기), x(실행)
#예시
chmod g+w file
#기존 파일의 permission중 group에 w를 추가한다.

6.2.2. 8진수 모드

퍼미션 숫자
r 4
w 2
x 1
#예시
chmod 664 file
#기존 파일의 permission은 무시하고 rw-rw-r--가 된다.

6.3. chown

- 소유권 설정

- chown [option] [user]:[group] File

- 소유권을 변경하는 것은 관리자만 할 수 있다.

sudo chown root file # 소유자만 변경
sudo chown root:root file # 소유자와 그룹 변경
sudo chown :root file # 그룹만 변경

7. 확장 권한

- Extended, Special Permission

- rwx는 표준 권한이라고 한다.

권한 파일 디렉토리
setuid 소유자의 권한으로 실행(EUID)  
setgid 소유 그룹의 권한으로 실행(EGID) 소유 그룹이 하위 디렉토리로 상속
sticky bit   파일의 소유자만 해당 파일 삭제 가능

  • file1 : setuid
    • 실행 프로그램을 실행하는 동안에는 해당 실행되는 파일의 소유자로 권한을 부여받는다.
    • EUID (Effective UID)
    • /etc/passwd
  • file2 : setgid
    • 실행 프로그램을 실행하는 동안 해당 파일의 소유그룹으로 권한을 부여받는다.
    • EGID (Effective GID)
    • /run/log/journal/
  • file3 : sticky bit
    • sticky bit는 파일에 권한을 주어봤자 아무것도 아니다.
    • /tmp/

octal mode로 표현하면 4---이다.

4자리로 구성되어 있는데 기존 표준권한에서 는 3자리를 사용했었다.

chmod u+s
chmod 4700
chmod g+s
chmod 2070
chmod o+t
chmod 1007
/etc/shadow 파일에는 읽기 권한과 쓰기 권한이 없다.
'root'는 퍼미션과 상관없이 모든 것을 할 수 있다.
그렇게 되면 'shadow' 파일에 권한 없이 변경이 가능해진다.
결론 : 위험하다는 것을 경험하게 해준다. 

 

 

복사했습니다!