Etc

리눅스 마스터 2급 정리(6) - 리눅스 파일 권한과 파일 시스템

하다보면 되겠지 2025. 5. 6. 23:47

리눅스의 파일 권한

일반 파일 권한

  • 모든 파일과 디렉터리는 접근 권한과 소유권이 부여됨
  • 사용자별 권한은 기호 모드(symbloic)와 8진수 숫자 모드(numeric)로 표시
  • ls -al 결과 표시 내용: 파일 유형 + 접근 권한, 물리적 파일 연결개수(하드링크), 소유자, 소유 그룹, 크기, 마지막 변경 날짜+시간, 파일명
  • 디렉토리의 x 권한: 해당 디렉터리 안에서 작업이 가능하다는 의미

 

리눅스 파일의 특수 권한

  • 프로세스가 실행되는 동안 해당 프로세스의 root 권한을 임시로 가져오는 기능
  • 프로세스가 사용자보다 높은 수준의 접근을 요구할 때 접근 제한 때문에 원활한 기능을 제공할 수 없기 때문에 이를 해결하기 위함
  • SetUID: 사용자가 소유할 때만 소유자 권한으로 파일을 실행 시킴
  • SetGID: 소유자 그룹 권한으로 실행
  • s(실행파일), S(일반 파일)
  • 예시: 일반 계정의 비밀번호를 변경할 경우, root 권한으로 /etc/passwd 파일 접근

 

Sticky Bit

  • 주로 공용 디렉터리를 사용할 때 사용
  • 폴더에 대하여 소유자 혹은 root만 파일을 수정하거나 삭제 가능
chmod +t tmp
ls -al
> drwxrwxr-t root root 4096 tmp

 

디스크 쿼터(Disk Quota)

  • 파일 시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량 및 개수를 제한하는 것
  • 주로 block 단위의 용량 제한과 inode의 개수를 제한함
  • 쿼터는 사용자별, 파일 시스템별로 동작함
  • 디스크 쿼터 설정 파일 및 관련 명령어
    • quotaoff: 쿼터 서비스 비활성화
    • qoutaon: 활성화
    • quotacheck: 파일시스템의 디스크 사용 상태 점검
    • edquota: 편집기를 이용한 사용자/그룹 쿼터 설정
    • setquota: 명령어를 이용한 사용자/그룹 쿼터 설정

 


권한 및 그룹 설정 명령어

chown

  • 사용자(그룹) 소유권 변경
  • -R 옵션: 하위 디렉터리도 동일하게 변경(소유권의 상속)
chown root:root test.txt
chown root  test.txt  # 소유자
chown :root test.txt  # 소유 그룹

 

chgrp

  • 소유 그룹 변경
  • chgrp <옵션> [그룹명] [파일명]
  • -R: 하위 디렉터리 포함

 

chmod

  • 접근 권한 변경
  • chmod <옵션> [권한] [파일명]
  • -R: 하위 디렉터리 포함
chmod +x file  # 모든 유저에게 실행 권한 추가
chmod -x file
chmod u+x file  # 소유자에게 실행 권한 추가
chmod g=rx file  # 그룹에 read, write권한 추가
chmod o-x file  # 기타 다른 사람들은 실행할 수 없도록 설정
chmod a+r file
chmod 766 file  # rwx를 이진수로 계산한 것

 

unmask

  • 파일/디렉터리 생성 시 기본으로 적용할 접근 권한을 지정
  • 파일은 (666 - umask값), 디렉터리는 (777 - umask) 값으로 설정됨
  • umask <옵션>[설정값]
  • -S: 문자로 표시
umask  # 기존값 조회
umask 002  # umask값 설정

 


파일 시스템의 관리

파일 시스템의 개요

  • 파일 시스템이란? 스토리지 장치(디스크) 상에 파일을 관리할 수 있도록 만들어 놓은 구조 혹은 관리 방식
  • 최근에는 서버 파일과 가상 파일까지 접근할 수 있도록 개념이 확대됨

  • 슈퍼 블록: 파일 시스템 관련 정보(블록 크기 및 개수, inode 개수)
  • Group Descriptor: 각 블록 그룹을 관리하는 정보를 저장
  • Block Bitmap: 블록의 사용 상태를 나타냄
  • inode: 파일 이름을 제외한 정보(고유 번호, 파일 형태, 크기, 위치, 소유자 등)
    • inode bitmap: inode의 상태 정보
    • inode table: 각 inode에 대한 정보를 나타내는 descriptor로 구성

 

파일 시스템의 종류

저널링이란?
- 로그와 유사한 개념
- 특정 정보 관리를 통해 파일 시스템에 문제가 생길 경우 복구 진행

1. 저널링 파일 시스템

2. 네트워크 파일 시스템

 

3. 지원 가능한 기타 파일 시스템

 


파일 시스템 관련 명령어

/etc/fstab 파일
- 파일 시스템 정보 저장 및 관리하는 설정 파일
- 부팅 시 마운트 정보 포함

mount

  • 스토리지 장치를 연결하여 디렉토리처럼 사용
  • 설정 파일: /etc/fstab(부팅 시 참조하여 마운트), /etc/mtab(마운트된 블록 시스템 정보)
  • mount <옵션> [장치명] [디렉터리명]

 

unmount

  • 마운트 해제
  • unmount <옵션> [장치명] [디렉터리명]

 

eject

  • 미디어 장치를 해제하고 장치를 제거
  • eject <옵션> [디바이스명]

 

fdisk

  • 새로운 파티션의 생성, 기존 파티션의 삭제, 파티션의 타입 결정
  • 한 번에 한 디스크에 대해서만 작업을 수행
  • fdisk <옵션> [디바이스명]
  • fdisk를 실행하기 위해서는 어떤 디스크의 파티션을 나눌 것인지 지정 필요

 

mkfs

  • 파일 시스템 생성
  • 파티션 생성 뒤 원하는 파일 시스템 구축 필요
  • mkfs <옵션> [디바이스명]

 

mkfs2

  • ext2, 3, 4 리눅스 파일 시스템 생성
  • mkfs2 <옵션> [디바이스명]

 

 

fsck

  • 파일 시스템 점검 및 복구
  • /lost+found 디렉터리에 손상된 파일 관리 → 정상 복구된 후 삭제됨
  • fsck <옵션> [디바이스명]

 

 

e2fsck

  • ext2, 3, 4 리눅스 파일 시스템 점검 및 복구
  • e2fsck <옵션> [디바이스명]

 

du(disk use)

  • 디렉터리 별 디스크 사용량 확인
  • du <옵션> [디바이스명]

 

df

  • 시스템에 마운트된 하드 디스크의 남은 용량을 확인
  • 파티션 단위로 사용량 확인
  • 기본 1024bte 블록 단위로 출력
  • df <옵션> [디바이스명]

 


References