(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' 파일에 권한 없이 변경이 가능해진다.
결론 : 위험하다는 것을 경험하게 해준다.
'Linux' 카테고리의 다른 글
[Linux] 10. 사용자 및 그룹 정보 파일 (0) | 2022.07.25 |
---|---|
[Linux] 9. 권한 구성 및 사용 - (기본 권한, Zsh, Vim) (0) | 2022.07.22 |
[Linux] 7. 아카이브 및 압축 (0) | 2022.07.21 |
[Linux] 6. Process Control (상태, 전달, 신호, 우선순위) (0) | 2022.07.21 |
[Linux] 5. Process Control (0) | 2022.07.20 |