리눅스는 permission 기반의 보안 시스템으로 사용자의 접근을 제한한다.
파일과 디렉토리를 소유하는 그룹을 네 가지로 나눈다.
owner(u), group(g), others(o), all users(a)
권한의 타입은 세가지로 분류한다.
read(r), write(w), execute(x)
나의 오해는 ls -al 명령어를 입력할때 출력으로
[special permission, root, group, user] 의 순서로 허가된 행위가 나타나는 줄 알았는데
올바른 순서는 [special permission, owner, group, others] 의 순서로 permission이 나온다.
이 글을 쓰기 시작한 목적은
root권한으로 서버에 배포한 파이썬 파일을 일반 사용자로 서버에 접속하여 실행하는 경우
파이썬 프로그램이 log를 작성할때 permission error가 발생하였기 때문이다.
permission을 제대로 이해하지 못했기 때문에 엉뚱하게 권한을 사용하였다.
- permission이 중요한 경우
- home directories
본인의 home 경로, 보호가 필요한 다른 사용자의 home 경로를 700을 주어 다른사람이 보거나 변경하지 못하게 강제한다.
- bootloader configuration files
OS를 boot 할 때 root에게만 configuration 파일에 권한을 주어 다른 유저들의 읽고 쓰기를 막는다.
- system and daemon configuration files
시스템과 데몬 구성파일의 내용을 보호하기 위해 644를 주어 읽기가 가능하고 변경이 불가능하도록 한다.
- firewall scripts
방화벽 스크립트는 root에 의해 부트시에 자동으로 실행된다. 다른 유저들의 권한은 필요하지 않다.
https://linuxfoundation.org/blog/classic-sysadmin-understanding-linux-file-permissions/
'computer' 카테고리의 다른 글
가상메모리 접근 권한 (0) | 2022.07.20 |
---|---|
가상메모리 페이징 기법의 구현 (0) | 2022.07.20 |
가상 메모리 개요 (0) | 2022.07.16 |
파이썬에서 logging 모듈 사용하기 (0) | 2022.06.22 |
공유기의 원리와 역할 (0) | 2022.05.29 |