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

2024. 6. 13. 13:14·자격증 & 공부/리눅스마스터 1급

 

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-r—r--)로 변경

                  # 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

 

 

저작자표시 비영리 변경금지 (새창열림)

'자격증 & 공부 > 리눅스마스터 1급' 카테고리의 다른 글

[리눅스마스터1급 - 1차] 2과목 - 4-4. 소프트웨어 설치 및 관리  (0) 2024.06.13
[리눅스마스터1급 - 1차] 2과목 - 4-3. 프로세스 관리  (1) 2024.06.13
[리눅스마스터1급 - 1차] 2과목 - 4-1. 사용자 관리  (0) 2024.06.13
[리눅스마스터1급 - 1차] 1과목 - 3-2. 네트워크의 이해  (0) 2024.06.13
[리눅스마스터1급 - 1차] 1과목 - 3-1. 네트워크 기초  (0) 2024.06.13
'자격증 & 공부/리눅스마스터 1급' 카테고리의 다른 글
  • [리눅스마스터1급 - 1차] 2과목 - 4-4. 소프트웨어 설치 및 관리
  • [리눅스마스터1급 - 1차] 2과목 - 4-3. 프로세스 관리
  • [리눅스마스터1급 - 1차] 2과목 - 4-1. 사용자 관리
  • [리눅스마스터1급 - 1차] 1과목 - 3-2. 네트워크의 이해
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    Oracle
    JPA
    python
    데이터
    자바
    스프링
    리눅스
    Spring Security
    데이터베이스
    플러터
    프로그래머스
    CS지식
    springboot
    baekjoon
    백준
    스프링부트
    postgresql
    pcce 기출문제
    Linux
    시큐리티
    DB
    CS
    spring
    backjoon
    Java
    리눅스마스터 1급
    Flutter
    스프링 부트 쇼핑몰 프로젝트 with JPA
    리눅스마스터
    programmers
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[리눅스마스터1급 - 1차] 2과목 - 4-2. 파일시스템 관리
상단으로

티스토리툴바