정보보호과정
3주차(2) - 2022/02/22 리눅스 기초(파일과 디렉터리)
ORIONPOINT
2022. 2. 22. 13:43
Test.txt
복사 >> Test(1).txt
-> 둘이 같은 동작함
파일 Hash값 비교
Test.exe 복사한 Test.exe를 Kisec.exe로 이름을 바꿔도 둘의 해쉬값은 같음
Inode
- 리눅스 파일에 대한 모든 정보 추적하는 데이터 구조
- 파일 이름은 사람에게 도움 되지만 파일 시스템에게는 이름이 아니라 숫자로 파일 인식
- 사용자는 정보를 파일에 저장 -> 운영체제는 파일에 대한 정보를 Inode에 저장
- Inode는 다른 방식으로 메타 데이터라고 부름
- 메타 데이터 : 데이터에 대한 데이터
- 이름을 사용해 특정파일에 접근하기 위해서 Inode table의 고유한 번호 (Inode number)가 필요
- ls -ali 하면 Inode 번호가 보임
- 그냥 복사하면 inode 다름. inode가 가리키는 주소가 서로 달라야 복사한 파일 내용 수정해도 원본 파일이 수정되는 일(혹은 그 반대)이 없음
- ln [파일이름] [복사할 파일이름] 하면 inode 같은 파일로 복사됨 [하드 링크]
- ln -s [파일이름] [복사할 파일이름] : 심볼링 링크 파일 생성 (바로가기 개념)
- 심볼링 링크 파일은 원본파일과 inode는 다름
- 심볼릭 링크 파일의 Data는 원본 데이터의 주소값을 담고 있음
- 고로 원본 데이터 길이가 어떻든 파일의 크기는 일정함
- 원본 파일의 위치를 옮겨도, 원본 파일을 삭제해도 심볼릭 링크 깨짐
home directory에서 root로 adduser [유저명] 하면 계정 생성 가능
- New Password 입력하라고 뜸 (비밀번호 설정)
- 패스워드 변경하고 싶으면 passwd [현재 계정명] << 현재 사용하는 계정으로만 변경 가능하나 root도 가능
- useradd로도 계정 생성 가능
- 생성시 비밀번호 안물어봄
- passwd로 패스워드 생성 가능(새로운 패스워드를 바로 물어봄)
- 계정 폴더도 없음 그냥 계정만 만들어줌
- shell도 bash 아니고 그냥 sh 씀
- 생성시 비밀번호 안물어봄
- sudo passwd root 하면 root의 비밀번호 설정 가능
- su로 root 쉘로 변환 가능
userdel
: 계정정보만 삭제
userdel -r kisec
: 계정의 홈 디렉토리, 정보, 메일함까지 모두 삭제
passwd
: 계정에 대한 정보를 가지고 있음(비밀번호 정보 X)
- /bin/false
- 시스템의 로그인은 불가능, FTP 서버 프로그램같은 프로그램도 불가능
- 쉘이나 ssh과 같은 터널링(원격접속) 그리고 홈디렉토리를 사용할 수 없다.
- /sbin/nologin
- 사용자 계정의 쉘부분에 /bin/nologin 으로 설정을 하면 로그인 불가하고, 메시지들은 반환된다.
- ssh는 사용불가능하며 FTP의 경우 사용이 가능
shadow
: 비밀번호 정보 Hash값으로 저장되어 있음
group
: 그룹 관련
/etc/login.defs
: 패스워드 정책 관련 설정
- PASSWD_MAX_DAYS ~ 같은 설정 있음
- UMASK : 권한 관련 설정
(관리자 권한) pwunconv / pwconv
: shadow 정책에서 일반 정책으로 전환 / 다시 shadow 정책으로 전환
퍼미션(permission)과 소유권(ownership)
- 리눅스 시스템에 있는 모든 파일과 디렉터리에서는 그것을 액세스 할 수 있는 소유자와 그룹에 대한 소유권(ownership)을 가진다
- 이런 파일과 디렉터리에 엑세스 할 수 있도록 해주는 퍼미션(permission)으로 접근 제어할 수 있다.
chown 소유자.그룹 [파일/디렉터리명]
그룹 변경시 chgrp으로도 사용 가능
퍼미션 형식 구조 (계산)
- | r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 | |
파일 유형 | 사용자(user) | 그룹(group) | 기타(other) |
- 읽기 허용(Read)
- 쓰기 허용(Write)
- 실행 허용(eXecution)
chmod [퍼미션] 파일명
특수 권한
비트 이름 | 절대 표기 값 | 문자 |
Sticky bit | 1000 | Other 권한에 t |
SetGID | 2000 | Group 권한에 s |
SetUID | 4000 | Owner 권한에 s |
- SetUID
- user의 실행 권한(x)에 s가 붙음
- SetUID 설정시 일반 사용자 계정이 실행해도 root 권한으로 실행 됨
- 그 외 A 계정 소유자 권한의 파일도 B 계정에서 실행 가능
- chmod 4755(755 + 절대표기값 4000) test.sh 하면 SetUID가 설정됨
- chmod 6755 test.sh 는 SetGID(2000) + SetUID(4000) 동시에 설정한 것임
- SetGID
- group의 실행 권한(x)에 s가 붙음
- 표기값 2000
- Sticky Bit
- other의 실행 권한(x)에 t가 붙음
- 표기값 1000
- 거의 Directory에 많이 씀
- 이 비트 적용한 파일은 어떤 사용자라도 읽고 쓸 수 있지만 삭제 할 수 있는 사람은 이 파일 생성한 사용자만 삭제 가능
- 디렉터리에 rwx가 기본적으로 설정되어 있지 않으면 sticky bit를 설정해도 해당 디렉터리에 진입안됨
- 권한 줄 때 해당 소유자 권한으로 지정 가능
- 기존에 실행권한이 있었으면 소문자가 붙고 없었으면 대문자가 붙음