정보보호과정

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는 원본 데이터의 주소값을 담고 있음
      • 고로 원본 데이터 길이가 어떻든 파일의 크기는 일정함
    • 원본 파일의 위치를 옮겨도, 원본 파일을 삭제해도 심볼릭 링크 깨짐

 

test.txt(원본파일) / test2.txt (복사파일) / tttest.txt (하드링크 파일)
하드링크파일 수정하면 원본파일도 같이 파일 수정됨(파일 크기 참조)

 

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를 설정해도 해당 디렉터리에 진입안됨
    • 권한 줄 때 해당 소유자 권한으로 지정 가능
  • 기존에 실행권한이 있었으면 소문자가 붙고 없었으면 대문자가 붙음