Jin's Dev Story

[리눅스마스터1급 - 1차] 2과목 - 4-2. 파일시스템 관리 본문

자격증 & 공부/리눅스마스터 1급

[리눅스마스터1급 - 1차] 2과목 - 4-2. 파일시스템 관리

woojin._. 2024. 6. 13. 13:14

 

2. 파일시스템 관리

2-1. 파일 및 디렉터리 관리

  1) ls-l 명령어 수행 시 각 필드 항목

 

  2) 파일의 종류

    - “ls-l” 명령어 사용 시 첫 번째 필드의 첫 번째 비트

    - 일반 파일 : “-“로 표기

    - 디렉터리 (directory) : ”d”로 표기

    - 심벌릭링크 파일 : “l”로 표기

       : ln 명령어 : 링크 파일 생성 명령어

       : 옵션 없이 수행 시 하드 링크 파일 생성, [-s] 옵션 사용 시 심벌릭링크 파일 생성

           - 하드 링크 : inode number가 같음. 복사 개념

           - 심벌릭링크 : inode number가 다름. 바로가기 개념

                EX) # ln -s file.txt file.txt.sl  file.txt의 심벌릭링크 파일로 file.txt.sl을 생성

    - 블록 장치 파일 (/dev/hda, /dev/fd0 ) : “b”로 표기

    - 문자 디바이스 파일 (입출력 장치) : “c”로 표기

 

  3) 파일의 권한 (Permission)

    - “ls-l” 명령어 사용 시의 첫 번째 필드에서 첫 번째 비트를 제외한 9개 비트

    - 소유자 (owner) / 그룹 (group) / 기타 사용자 (others) 순으로 표기

       EX) # ls-l

                 drwxr-xr-x  directory  directory 파일은 디렉터리이며 소유자에 대해 모든 권한을 부여하며, 그룹/기타 사용자에게는 읽기와 실행 권한만 부여

                -rw--r--r  file.txt  file.txt 파일은 일반 파일이며 소유자에 대해 읽기와 쓰기 권한을 부여하며, 그룹/기타 사용자에게는 읽기 권한만 부여

    - 특수 접근 권한

       : SetUID : 이 권한이 있는 파일을 실행하는 동안에는 파일 소유자의 권한으로 실행되도록 함

           EX) -rwsr-xr-x 1 root root  /bin/passwd  passwd 명령어를 실행하는 동안은 root 권한으로 동작

       : SetGID : 이 권한이 있는 파일을 실행하는 동안에는 파일 소유 그룹의 권한으로 실행되도록 함

       : Sticky bits : 이 권한이 있는 디렉터리에는 누구나 파일을 생성할 수 있음 (삭제는 소유자와 root만 가능)

           EX) drwxrwxrwt 16 root root  /tmp  tmp 디렉터리에는 누구나 파일을 생성할 수 있음

    - umask 명령어

       : 기본 접근 권한을 출력 변경하는 명령어

           EX) # umask 022  그룹, 기타 사용자에게는 쓰기 권한을 부여하지 않도록 기본 접근 권한 설정

       : 일반 파일의 최대 접근 권한은 666이고 디렉터리의 최대 접근 권한은 777

       : umask 022일 때 파일을 생성한 직후의 권한은 644이고 디렉터리를 생성한 직후의 권한은 755

       : 파일과 디렉터리가 새로 생성될 때 새로 생성되는 파일은 실행 권한을 제외함

 

  4) 권한 소유권 변경 관련 명령어

    - chown 명령어

       : 파일과 디렉터리의 소유자와 소유 그룹을 변경하는 명령어

       : [-R] : 서브 디렉터리의 소유자와 소유 그룹도 같이 변경

           EX) # chown fedora2 /linuxmaster/fedora.txt  fedora.txt 파일의 소유자를 fedora2로 변경

                  # chown fedora2:grp01 /linuxmaster/fedora.txt  fedora.txt 파일의 소유자를 fedora2로 소유 그룹을 grp01로 변경

    - chgrp 명령어 : 파일과 디렉터리의 소유 그룹을 변경하는 명령어

    - chmod 명령어

       : 파일과 디렉터리의 접근 권한을 변경하는 명령어

       : [-R] : 서브 디렉터리의 접근 권한도 모두 변경

           EX) # chmod 644 perm.tmp  perm.tmp 파일의 접근 권한을 644(rw-rr--)로 변경

                  # chmod go-rwx perm.tmp  perm.tmp 파일의 접근 권한에서 그룹과 기타 사용자의 권한을 모두 제거

       : [-t] : sticky bit 설정하는 옵션

 

  5) 파일 속성 관련 명령어

    - 파일 속성 기호

       : -a 해당 파일에 추가만 가능

       : -c : 자동으로 압축된 상태로 저장

       : -d : dump로 백업이 되지 않음

       : -i : 해당 파일에 대해 변경/삭제 등을 할 수 없음

       : -u : 해당 파일이 삭제될 경우 그 내용이 저장되며, 데이터 복구가 가능

    - lsattr 명령어

       : 디렉터리/파일의 속성을 출력하는 명령어

    - chattr 명령어

       : 디렉터리/파일의 속성을 변경하는 명령어

           EX) chattr +i attr.tmp  attr.tmp 파일에 i 속성을 추가

 

2-2. 파일시스템 복구

  1) /etc/fstab 파일

    - 파일시스템의 마운트 설정 정보를 가지고 있는 파일

    - 파일 구조

       : 장치 이름에는 장치 파일명 외에도 UUID나 라벨명으로 설정 가능

    - 옵션 필드 종류

       : defaults : 기본값. rw, nouser, auto, exec, suid 속성을 포함

       : auto : 부팅 시 자동으로 마운트 <-> noauto

       : exec : 실행파일이 실행되는 것을 허용 <-> noexec

       : suid : SUID/SGID의 사용 허용 <-> nosuid

       : ro : 읽기 전용 <-> rw : 읽기/쓰기 허용

       : user : 일반 사용자도 마운트 가능 <-> nouser : 일반 사용자의 마운트 불가능 (root만 가능)

       : usrquota : 사용자별로 디스크 쿼터 설정 허용

       : grpquota : 그룹별로 디스크 쿼터 설정 허용

    - 덤프 설정

       : 1 : dump 등의 데이터 백업 명령어 사용으로 파일시스템의 내용 덤프 가능

       : 0 : 파일시스템의 내용을 덤프 불가능

    - 파일 점검 옵션

       : 0 : 부팅 시 fsck 명령어로 파일시스템 점검 미수행

       : 1 : 루트 파일시스템에 설정 부팅 시 파일시스템 점검 수행

       : 2 : 루트 파일시스템 이외의 파일시스템 점검 수행

 

  2) mount 명령어

    - 파일시스템을 마운트하는 명령어

    - 형식 : # mount [옵션] [장치 이름] [마운트 포인트]

    - 주요 옵션

       : [-t] : 파일시스템 종류를 지정

           EX) # mount-t iso9660 /dev/cdrom /mnt/cdrom  CD-ROM /mnt/cdrom 디렉터리에 마운트

       : [-f] : 마운트가 가능한지 확인만 수행

       : [-o] : 마운트 옵션을 지정

           EX) # mount -t ext4 -o ro,user /dev/sdb /mnt  /dev/sdb 장치를 /mnt에 마운트 읽기 전용, 일반 사용자도 마운트 할 수 있도록 허용

                 # mount -t iso9660 -o loop /linuxmaster/temp.iso /mnt/iso  temp.iso ISO 이미지를 /mnt/iso에 마운트

    - 언마운트는 umount 명령어를 이용

    - CD-ROM 장치 언마운트 후 CD를 꺼낼 때 eject 명령어를 이용

    * 마운트 주의사항

       : 한 개의 장치는 한 개의 mp를 가져야 하며, mount umount 작업 시 mp 밖에서 작업해야 함

 

  3) fdisk 명령어

    - 디스크의 파티션 생성 삭제 정보 출력 등 파티션을 관리하는 명령어

    - 주요 옵션

       : [-l] : 파티션 테이블 출력

    - 주요 내부 명령어

       : d : 파티션을 삭제

       : l : 사용가능한 파티션 시스템 종류를 출력

           * 주요 시스템 종류 : 82(linux swap), 83(linux), 8e(linux LVM), fd(RAID)

       : n : 새로운 파티션 생성

       : p : 파티션 테이블 출력

       : t : 파티션의 시스템 종류를 변경

       : w : 파티션 정보를 디스크에 저장하고 종료

 

  4) 파일시스템 생성 포맷 명령어

    - mkfs 명령어

       : [-t] : 파일시스템 종류 지정 (default : ext2)

           EX) mkfs -t ext4 /dev/sdb1  /dev/sdb1 파일시스템을 ext4로 생성

       : mkfs.ext2 / mkfs.ext3 / mkfs.ext4 명령어도 제공

    - mke2fs 명령어

       : [-t] : 파일시스템 종류 지정 (default : ext2)

       : [-c] : 배드블록을 체크

       : [-b ] : 블록크기를 바이트 수로 지정

       : [-j] : ext3 형식으로 생성 (journaling)

       : 기본 설정값은 /etc/mke2fs.conf 파일에서 정의

 

  5) LVM(Logical Volume Manager)

    - 독립적으로 구성된 디스크 파티션을 하나로 연결하여 한 파티션처럼 사용할 수 있도록 해주는 관리 도구

    - 관련 용어

       : PV(Physical Volume) : 실제 하드디스크의 파티션을 의미

       : VG(Volume Group) : 여러 개의 PV를 그룹으로 묶은 것을 의미

       : LV(Logical Volume) : VG를 다시 적절한 크기로 나눈 파티션을 의미

       : PE(Physical Extent) : PV가 가진 일정한 블록을 의미

       : LE(Logical Extent) : LV가 가진 일정한 블록을 의미

 

    - 주요 명령어 (LVM 생성 시 사용 순)

        1) 해당 파티션의 종류 변경

            : fdisk  t  기존 83(linux) 8e(linux)로 변경

        2) PV 생성

            : pvcreate 명령어 : PV 생성

            : pvscan 명령어 : PV 상태를 확인

        3) VG 생성 : vgcreate 명령어

        4) VG 활성화

            : vgchange -a y 활성화

            : vgchange -a n : 비활성화

            : vgdisplay -v : VG 상태 확인

        5) vgscan

            : VG에 해당하는 모든 디스크를 스캔하고, LVM 캐시 파일을 재작성

[root@www~] #
Reading all physical volumes. This may take a while.. Found volume group “lvm0” using metadata type lvm2
[root@www~] #

        6) LV 생성

            : lvcreate 명령어

            : lvcreate L : LV의 사이즈를 지정하는 옵션(K-Kilobytes, M-Megabytes, G-Gigabytes, T-Terabytes)

            : lvcreate l : LV의 사이지를 지정하는 옵션으로 pe의 개수로 용량을 지정함

            : lvscan 명령어 : LV 상태 확인

        7) LV에 파일시스템 생성 : mkfs / mke2fs 명령어 사용

        8) LV 마운트 : mount 명령어 사용

 

  6) 파일시스템 점검 복구 관련 명령어

    - fsck 명령어

       : 파일시스템을 검사/복구하는 명령어

       : [-f] : 강제 검사

       : [-b] : 지정한 백업 슈퍼 블록을 사용하여 복구

       : fsck.ext2 / fsck.ext3 / fsck.ext4 명령어도 제공

    - e2fsck 명령어

       : 파일시스템을 점검하기 전에 해당 파일시스템을 umount 후 진행

       : [-j ext3/ext4] : ext3 ext4 파일시스템을 검사할 때 지정

    - badblocks 명령어

       : 지정한 장치의 배드 블록을 검사하는 명령어

       : [-v] : 검사 결과 자세히 출력

       : [-o] : 검사 결과를 지정한 출력 파일에 저장

    - tune2fs 명령어

       : ext2 파일시스템을 설정(튜닝)하는 명령어

       : [-i] : ext2 파일시스템을 ext3 파일시스템으로 바꿈

       : [-l] : 파일시스템 슈퍼 블록 내용을 출력

 

  7) 새로운 디스크 추가 과정

    1. 새로운 디스크 설치

    2. 파티션 생성 : fdisk 명령어

    3. 파일시스템 생성 : mkfs / mke2fs 명령어

    4. 마운트 할 디렉터리(마운트 포인트) 생성

    5. 파일시스템 마운트 : mount 명령어

 

2-3. 관련 명령어

  1) ls 명령어

    - 주요 옵션

       : [-a] 숨겨진 파일을 포함한 모든 파일의 목록을 출력

       : [-d] : 지정한 디렉터리 자체의 정보를 출력

       : [-i] : inode 번호를 출력

       : [-l] : 파일의 상세한 정보를 출력

       : [-A] : .(현재 디렉터리), ..(이전 디렉터리)를 제외하고 출력

       : [-F] : 파일의 종류를 함께 출력 : (* : /행파일 , / : 디렉터리 , @ : 심벌릭링크)

       : [-L] : 심벌릭링크 파일의 원본 파일 정보를 함께 출력

       : [-R] : 하위 디렉터리들의 파일 목록까지 함께 출력

    - grep 명령어와 조합

       : 디렉터리만 출력

           # ls -al | grep “^d”

       : 일반 파일만 출력

           # ls -al | grep “^-”

           # ls -al | grep v “^[a-zA-Z]”

       : 특정 문자열이 들어간 파일 검색

           # ls -al | grep linux

 

  2) 디스크 사용량 출력 명령어

    - df 명령어

       : 파일 시스템별 디스크 사용량을 확인하는 명령어

       : [-a] : 모든 파일시스템의 디스크 사용량을 출력

       : [-h] : 디스크 사용량을 알기 쉬운 단위로 출력

       : [-t] : 지정한 파일시스템에 해당하는 디스크 사용량을 출력

       : [-T] : 파일시스템의 종류도 함께 출력

       : 옵션 없이 사용 시 vs [-h] 옵션 사용 시 비교

    - du 명령어

       : 디렉터리나 사용자별로 디스크 사용량을 확인하는 명령어

       : 형식 : du [옵션] [디렉터리]

       : [-s] : 특정 디렉터리의 전체 사용량을 출력

       : [-h] : 디스크 사용량을 알기 쉬운 단위로 출력

       : [-d NUM] : (--max-depth=NUM) 현재 디렉터리 기준으로 하위 NUM 단계 아래의 디렉터리까지의 디스크 사용량 출력

       : 옵션 없이 사용 시 현재 디렉터리의 디스크 사용량을 출력

 

  3) 디스크 사용량(quota) 관련 명령어

    - 쿼터 설정 전에 etc/fstab 파일의 옵션 필드에 쿼터 관련 설정을 해주어야 함

    - quotacheck 명령어 (aquota.user와 동일)

       : 쿼터 파일을 생성 확인 수정을 위해 파일시스템을 검사하는 명령어

       : [-a] : 전체 파일시스템 검사

       : [-u] : 사용자 쿼터 확인

       : [-g] : 그룹 쿼터 확인

       : [-m] : 파일시스템을 다시 마운트 하지 않음

       : [-v] : 자세하게 출력

           EX) # quotacheck -avugm

    - quotaon 명령어

       : 파일시스템의 쿼터 기능을 활성화하는 명령어

       : [-a] : 전체 파일시스템의 쿼터를 활성화

       : [-u] : 사용자 쿼터 활성화

       : [-g] : 그룹 쿼터 활성화

       : [-v] : 자세하게 출력

           EX) # quotaon -augv

    - edquota 명령어

       : 쿼터를 설정하는 명령어 (vi 형식)

       : [-u] : 사용자 쿼터 설정

           EX) # edquota -u fedora  fedora 유저의 쿼터 설정

       : [-g] : 그룹 쿼터 설정

       : [-p] : 쿼터 설정 복사

           EX) # edquota -p fedora fedora2  fedora 유저의 쿼터 설정 내용을 fedora2 유저에게 적용

    - setquota 명령어

       : 쿼터를 설정하는 명령어 커맨드 라인에서 옵션으로 설정하는 형식

       : 형식 : # setquota [옵션] [이름] [block soft limit] [block hard limit] [inode soft limit] [inode hard limit] [장치명]

           EX) # setquota -u fedora 1000 1100 0 0 /

    - quota 명령어

       : 쿼터 정보를 출력하는 명령어

       : [-u], [-g] 옵션 포함

           EX) # quota -u fedora  fedora 유저의 쿼터 설정 내용 출력

    - repquota 명령어

       : 쿼터 정보를 요약하여 출력하는 명령어

       : [-a], [-u], [-g] 옵션 포함

       : [-v] : 사용량이 없는 쿼터의 정보 출력

    - uquota : 사용자에 대한 디스크 쿼터를 설정

 

4) 파일시스템 ACL(Access Control List) 관련 명령어

    - getfacl 명령어

       : 접근 권한을 확인하는 명령어

    - setfacl 명령어

       : 접근 권한을 설정하는 명령어

       : [-m] : 권한을 수정

       : [-x] : 권한을 삭제

       : [-R] : 하위 디렉터리의 권한까지 변경

  5) 스왑 영역 관련 옵션

    - 스왑(swap)

    - mkswap 명령어

       : 스왑 영역을 생성하는 명령어

       : [-c] : 스왑 영역을 만들기 전에 먼저 배드 블록을 검사

    - swapon / swapoff 명령어

       : 스왑 영역을 활성화 비활성화하는 명령어

    - dd 명령어

       : 블록 단위로 파일을 복사 변환하는 명령어

       : [if=FILE] : 지정한 파일을 입력으로 받음

       : [of=FILE] : 지정한 파일을 출력으로 설정

       : [bs=BYTES] : 한 번에 읽어 들이거나(read) 출력(write)할 바이트 수 지정

       : [count=BLOCKS] : 지정한 블록 수만큼 복사

           EX) # dd if=/dev/zero of= swapfile bs=1024 count=1000 1024 바이트씩 1000번을 /dev/zero에 읽어서 /swapfile에 기록

    - 스왑 파일 생성 절차

       1) dd 명령어로 파일 생성

       2) mkswap 명령어로 스왑 파일 생성

       3) sync 명령어로 현재 메모리에 있는 데이터를 디스크에 저장

       4) swapon 명령어로 스왑 영역 활성화

 

  6) parted 명령어

    - 파티션 생성, 삭제 크기 변경 등의 파티션 관리를 위한 명령어

    - 파티션 분할 시 사용

 

  7) partprobe 명령어

    - 리부팅 없이 사용 중인 파티션 재인식

 

 


해당 블로그를 참고하여 정리했습니다.

https://bangu4.tistory.com/139

 

[Linux Master] 리눅스 마스터 공부법, 기출문제, 요약집

www.ihd.or.kr/main.do KAIT 자격검정 시험접수 정보통신 자격검정 시험 원서등록을 하실 수 있습니다 www.ihd.or.kr 시험에 대한 모든 내용이 홈페이지에 있지만 다시한번 정리하겠습니다. 1급 기준으로 1

bangu4.tistory.com