Linux file system
- 리눅스 파일 시스템은 파일들과 디렉토리들의 계층적 모음집이다.
- 파일 시스템은 어떻게 파일들이 저장되고 관리되고 접근하는 지를 정한다.
- Ext2, Ext3, Ext4, XFS, BtrFS 등등의 리눅스 파일 시스템들이 있다.
- / : 루트(root) 디렉토리
- /root: 루트 유저의 홈 디렉토리
- /home: 유저의 개인 디렉토리들
- /bin: 바이너리(실행 파일)을 위한 디렉토리
- /sbin: 루트 유저가 사용하는 관리 시스템을 위한 바이너리들을 포함한 디렉토리
- /etc: 시스템 구성을 포함하고 있다.
- /media: usb같은 탈부착 가능한 미디어들을 위한 보조 디렉토리들을 보유한다.
- /mnt: 파일 시스템의 마운팅 지점
- /lib: 공유된 객체들과 라이브러리들을 위한 디렉토리
- /usr: 유저가 실행할 프로그램이 저장됨. 위의 그림처럼 하위 디렉토리를 갖고 있다.
- /dev: 디바이스 파일들을 갖고 있다.
- /proc: 프로세스 파일들을 갖고 있다.
- /tmp: 임시 파일들을 갖고 있다.
Linux User Management
계정 시스템은 사용자/ 그룹 계정을 기반으로 구성된다.
- 주로 파일과 디렉토리들의 보유와 접근을 관리하고 리소스로부터 유저가 접근하는 것을 조종한다.
유저:
- 시스템에 로그인하는 실제 유저 계정
- 각 유저는 특이한 이름과 UID(User ID), 하나 이상의 GID(Gruop ID)와 연결되어 있다.
- 모든 유저 이름은 /etc/passwd 에 저장되어 있다.
- 모든 유저의 암호화된 비밀번호들은 /etc/shadow 에 저장되어 있다.
그룹:
- 사용자와 사용 권한을 논리적으로 그룹화하는 데 사용된다.
- 각 그룹은 특이한 이름과 GID(Gruop ID)를 갖는다.
/etc/passwd
각 줄은 하나의 유저와 콜론(:)으로 구분되어있는 필드의 구성에 대한 정보를 나타낸다.
username:x:UID:GID:full_name:home_directory:shell
- username: 유저 이름
- x: 비밀번호를 위한 장소
- UID: 유저의 유니크 아이디
- GID: 유저의 그룹 아이디
- home_directory: 유저의 홈 디렉토리
- shell: 로그인 쉘(bash 같은 거)
/etc/shadow
각 줄은 하나의 유저와 콜론(:)으로 구분되어있는 필드의 구성에 대한 비밀번호 정보를 나타낸다.
username:encrypted_password:last_pw_change:min_days:max_days:warning_days:inactive_days:expiration_date:reserved
- username: 유저 이름
- encrypted_password: 해시된 비밀번호
- min_days: 암호 변경까지의 최소 일수
- max_days: 암호 변경까지의 최대 일수
- warning_days: 비밀번호 만료하기 전의 일수
- inactive_days: 비밀번호 만료 후 계정이 비활성화되기 전까지의 일수
- reserved: 사용하지 않음
Linux permission
접근 허가는 유저와 그룹의 파일/디렉토리로부터의 접근을 관리하는데 사용된다.
유저가 파일/디렉토리에 할 수 있는 것에 제한을 둔다.
위 사진의 왼쪽부터
- 파일을 위한 접근하가
- 링크된 파일들 수
- 파일의 주인
- 파일의 그룹
-file type:
d = 디렉토리
- = 기존파일
l = 상징 링크
c = 특수 파일
b = 특수 파일
s = 소켓 파일
p = 파이프 파일
파일 권한:
-rwx rwx rwx = 주인/ 그룹/ 나머지 = 421 421 421 (4=읽기, 2= 쓰기 1= 실행)
주인: 파일주인에게 접근 허가
그룹: 그룹에게 접근허가
나머지: 파일과 관련 없는 사용자 접근 허가
umask: 새로 생성되는 디렉토리나 파일 권한을 제어하는 명령어
777이 디폴트 = 421 421 421
$ umask
0002
$ umask 200
$ umask
0200
umask가 022면 777 -022 = 755(421 41 41) rwx r-x r-x
Linux user ID
- UID: 시스템에서 사용자 식별, 파일 접근 관리
- EUID: 파일이 실행되는 동 일시적으로 파일 소유자의 권한 획득
- RUID: 프로세스를 시작한 유저의 UID(ID 안 변함)
- SUID: 프로세스 실행 전에 EUID를 받는다.