1. 소유권과 관련 명령어(Ownership)
명령어 chown
파일과 디렉터리의 사용자 소유권과 그룹 소유권을 변경
ex. chown [옵션] 소유자[:그룹명] 파일명
2. 허가권(permission)과 관련된 명령어
ls -l : 파일 유형과 허가권을 알 수 있다.
-rw-rw-r - - l shina shina 53 2024-02-25 00:20 이렇게 나옴
-rw-rw-r - - : 파일의 유형(-) 과 파일의 접근 권한 나타넴
파일 사용자 : 파일 소유자(owner), 그룹 소속자(group), 기타 사용자(others 또는 public)로 구분 소그기~
파일 권한 : 읽기(read), 쓰기(write), 실행(execute)
읽기, 쓰기 또는 실행의 접근 제한 표시는 하이픈(-) 으로 나타냄
명령어 chmod
권한 변경, 파일이나 디렉터리의 접근 허가권을 변경하는 명령어
chmod [옵션] 파일명
옵션 -R : 하위 디렉터리에 포함되어 있는 모든 디렉터리 및 파일의 권한 변경
ex. chmod a=r lin.txt : a=소유자, 그룹, 기타 사용자에 대한 모든 권한, r 만 부여
ex.chomod u-r : user 그룹에 r(읽기)권한 제거
ex.chomod u+r : user 그룹에 r(읽기)권한 추가
파일에 부여되는 허가권 w
파일의 내용을 수정할 수 있음, 파일의 내용을 전부 지워서 빈 파일을 만들 수 있음
cat 명령과 >> 를 이용하여 파일의 내용을 추가할 수 있음
3 특수 권한
Set-UID rootUID~ 4천루트유~
프로세스가 실행되는 동안 해당 프로세스의 root 권한을 임시로 가져오는 기능, 파일 실행 시 파일 소유자 권한으로 실행하는 것, 일반 사용자가 실행해도 루트 권한을 가질 수 있음, 8진수/기호(u+s) (소유자(user)에 Set-UID 추가) 를 이용하여 setuid 비트 설정 가능
Set-UID 비트는 4(4000), 기존 권한 값(예: 755)에 4000을 추가, 💡 4755 = 4000(setuid) + 755(일반 권한)
Set-GID 3000, Sticky bit, Gs
프로그램을 실행하는 동안 프로세스는 파일의 그룹과 같은 권한으로 실행
특수권한 설정 시 기호 s, 숫자는 2
#chmod 3770 /project : /project 디렉터리에 Set-GID, Sticky bit가 설정됨
Sticky bit (고정 비트) 특수권한 설정 시 기호 t 숫자 1 tt
디렉터리 내에서 파일을 삭제할 수 있는 사용자를 제한하는 특수 권한
일반적으로 공용 디렉터리를 사용할 때 sticky bit를 설정하여 사용, sticky bit로 설정되는 디렉터리는/tmp 안에 생성
Sticky bit가 적용된 디렉터리 내에 파일을 생성하는 것은 누구나 가능, 삭제는 생성자 본인과 관리자(root)만 가능
/tmp는 실행 중인 프로세스들의 임시 파일들을 저장하며, 종료 시 이 위치에 있는 파일들을 모두 삭제됨 => 공유 디렉터리 구성 시 적합
다른 사용자가 실수로 내 파일을 삭제하는 걸 막아줘!, sticky bit는 8진수(1xxx)나 기호 o+t 를 이용하여 설정, 유닉스의 경우 u+t 사용
chmod g+s, o+t/project : /project 디렉터리에 Set-GID를 부여, 파일 생성 시 자동으로 그룹 소유권을 지정하고, Sticky-Bit 권한 설정
디스크 쿼터(Disk Quota) 디스크에 분할할 수 있는 파티션 개수 x
파일 시스템마다 사용자/그룹이 생성할 수 있는 파일의 용량 및 개수를 제한, 사용자나 그룹이 가질 수 있는 inode 수, 사용자나 그룹에게 할당된 디스크 블록 수를 제한
디스크 쿼터 관련 명령어
quota : 디스크 사용량 및 할당량 표시
equota : 쿼터(할당량)을 설정하는 명령
quotaon : quota 실행
quotaoff : 쿼터 서비스를 비활성화함
quotacheck : 파일 시스템의 디스크 사용 상태를 체크하여 quota.user 파일을 업그레이드
edquota : 편집기를 이용하여 사용자/그룹에 디스크 사용량을 할당하는 명령어
setquota : 편집기가 기반이 아닌 명령행에서 직접 사용자나 그룹에 디스크 사용량을 할당하는 명령어
requota : 지정된 파일 시스템의 디스크 사용 상황과 할당 제한 상황을 표시
Section 02 파일 시스템 관리
1. 파일 시스템의 개요와 종류
1) 개요
OS가 파일을 시스템의 디스크상에 구성하는 방식, 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제
하드 디스크나 CD-ROM과 같은 물리적 저장소를 관리
iso 9660은 DVD를 마운트할 때 지정하는 파일 시스템
*CD-ROM(Compact Disc Read-Only Memory)
컴퓨터에서 다양한 컨텐츠(게임, 텍스트) 읽어오는 데 사용, 데이터를 저장, 읽을 수 있는 광학 디스크
- 파일 시스템의 구조
Super Block | 해당 파일 시스템 관련 정보 저장, 블록의 크기(1KB, 2KB, 4KB) |
Group Descriptor Table | 각 Block Group을 관리하는 정보 저장 |
Block bitmap | 그룹 내에 있는 각 블록의 사용 상태를 나타냄 |
inode | 파일에 대한 제어 정보 및 데이터 블록 포인터 저장 |
2) 종류
- 리눅스 전용 디스크 기반 파일 시스템
파일 시스템 | 파일크기 | 설명 |
ext(ext1) | 리눅스 초기에 사용되던 파일 시스템, 호환성 x, 파일 접근에 대한 타임 스탬프, 아이노드 수정 지원 X | |
ext2 | 2TB | ext 파일 시스템의 다음 버전, 저널링 파일 시스템 기능 x |
ext3 | 2TB | ext2 확장판, 리눅스의 대표적인 저널링(journaling)을 지원하도록 확장한 파일 시스템, ACL(Access Control List)을 통한 접근 제어 지원 |
ext4 | 16TB | ext2, ext3와 호환성이 있는 확장 버전 |
- 저널링 파일 시스템
시스템의 비정상적인 종료 시 저널(로그)을 이용해 빠르면서도 안정적인 복구가 가능
파일 시스템 | 파일크기 | 설명 |
JFS | Journaling File System의 약자 | |
XFS | 900TB (64Bit OS) |
eXtended File System, 고성능 저널링 시스템 |
ReiserFS | 독일의 한스 라이저(Reiser)가 개발한 파일 시스템, 리눅스용 저널링 파일 시스템 중에서 가장 안정적 |
*저널링이란?
파일 시스템에서 데이터 무결성 보장하기 위해 사용하는 기능
3)네트워크 파일 시스템
파일 시스템 | 설명 |
SMB | 삼바 파일 시스템을 마운트 지정, 서버 메시지 블록 윈도우 계열 OS 환경에서 사용되는 파일/프린터 공유 프로토콜 |
CIFS | Common Internet File System |
NFS | Network File System |
*sysfs는 리눅스에서 사용하는 가상 파일 시스템
명령어 mount(올리다, 장착하다, 설치하다)
특정 디바이스를 특정 디렉터리처럼 사용하기 위해 장치와 디렉터리를 연결, USB, 외장 하드, ISO 파일, 네트워크 드라이브 등을 리눅스 시스템에서 사용하려면 mount를 이용해 특정 디렉터리에 연결해야 해
mount [옵션] [디바이스명] [디렉터리명]
옵션
-o : 다른 옵션들을 명시할 수 있음
-ro : 읽기 전용
-o remount : 다시 마운트, ex. mount -o remount /home
-loop : 이미지 파일인 iso를 마운트 시 사용, ex. mount -oloop /home : iso 파일 마운트
ex. #mount -t iso9660 -o loop => CentOS-6.9-I386.bin-DVD1.iso /media
삼바 파일 시스템을 마운트할 때 지정하는 유형 값 : cifs
ex. mount -t smbfs // 컴퓨터이름/공유이름 마운트할 디렉터리
삼바 서버를 통해 윈도우 공유 폴더를 마운트하여 리눅스 디렉터리처럼 사용 가능
submount 또는 mount 명령에서 삼바 파일 시스템 형식을 지정할 수 있음
📌 ISO 파일이란?
ISO 파일은 이미지 파일이긴 한데, 흔히 말하는 사진 이미지(jpg, png 등) 파일이 아니라 디스크 이미지(Disk Image) 파일
CD, DVD, 블루레이 같은 광학 디스크의 전체 데이터를 하나의 파일로 만든 것, OS 설치 파일이나 게임, SW 배포 등에 사용됨
파일 시스템 구조까지 그대로 보존해서 원본 디스크처럼 사용 가능
명령어 mkfs
리눅스 파일 시스템을 생성, fdisk로 하드 디스크의 파티션을 나눈 후 해당 파티션에 맞는 파일 시스템을 생성
mkfs [옵션] 장치이름
명령어 mke2fs
ext2 이상의 파일 시스템을 생성
mke2fs [옵션] 장치명 , mke2fs /dev/sdb1
옵션
-t(type) : 파일 시스템 타입 지정 (ext3/ext4 지정)
-b : 블록 크기의 바이트 수로 지정
-j : 저널링 파일 시스템(ext3)으로 만듦, 옵션 없이는 자동으로 ext2를 만듦, mke2fs -j ext4 /dev/sdb1 (x) => j 옵션!
-f : fragment 크기 지정
-i : inode 당 바이트 수를 지정
-R : RAID4 장치를 포맷할 때 사용하는 특수 옵션, 위 옵션이 있다면 Raid 장치임
-T filetype : I-node 크기를 지정할 수 있는 옵션, filetype이 news(4k), largefile(1M), largefile4(4M)일 때, 지정된 크기로 I-node가 할당됨
mke2fs -j -T largefile/dev/hbd1 => /dev/hdb1을 저널링 파일 시스템으로 만들고, I-node의 크기를 1MB로 지정
명령어 unmount
unmount [옵션] [디바이스명] [디렉터리명]
명령어 eject
eject [옵션][디바이스명]
이동식 보조기억장치(DVD 또는 CD-ROM) 등과 같은 미디어를 해제하고 장치를 제거하는 명령어
- r : 시디롬을 마운트 해제
-f : 플로피를 마운트 해제
명령어 fdisk
파티션 분할 명령어, 새로운 파티션의 생성, 기존 파티션의 삭제, 파티션의 타입 결정 등의 작업 수행, fdisk 프로그램은 한 번에 한 디스크에 대해서만 작업 수행, 명령어 프롬프트 중심의 매우 간단한 IF 가짐, 설정 후에는 partition table 업데이트가 필요
명령어 umask 파육디칠~
새로 생성되는 파일/디렉터리의 기본 허가권 값을 지정/변경
파일의 기본 권한 666, 디렉터리의 기본 권한 777
umask [옵션] [값]
옵션
-S : 디렉터리 파일 기본 권한을 문자(String)로 표기, 현재 파일 마스크를 기호 양식으로 표시
예시
umask
0002
umask -S
u=rwx, g=rwx, o=rx
왜? 디렉터리 기본 권한 777 인데 777-2=775(rwx rwx r-x) 또는 u=rwx, g=rwx, o=rx
명령어 fsck(file system consistency check)
운영 중인 리눅스 서버의 파일 시스템에 손상된 디렉터리나 파일을 수정할 때 사용하는 명령
파일 시스템의 무결성을 점검하고 대화식으로 복구하는 명령어
디렉터리 /lost+found
fsck에서 사용하는 디렉터리, 발견된 *결함이 있는 파일에 대한 정보가 보관
손상된 파일을 /lost+found 디렉터리로 연결한 뒤에 오류를 수정, 평상시에는 null 파일 링크에 의해서 비어있는 상태로 존재
디렉터리 /lost+found에서 작업을 수행하다가 정상적으로 복구가 되면 파일은 사라짐
*결함이 있는 파일
디스크 오류나 부정확한 시스템 종료에 의해 파일들이 잃어버린 상태가 될 수 있는 파일, 시스템이 부팅될 때, fsck가 실행되어 결함 파일들을 찾아 lost+found 디렉터리에 저장
명령어 du (disk usage)
현재 디렉터리 혹은 지정한 디렉터리의 사용량을 확인하는 명령어, Disk Usage 의 약자, 디렉터리별 디스크 사용량 확인 가능
du [옵션] [파일 및 디렉터리명]
명령어 df (disk free) 디스크프리를위한파티션(개소리네,,)
시스템에 마운트된 하드 디스크의 용량을 파티션 단위로 사용량을 확인하는 명령어
기본적으로 1,024Byte 블록 단위로 출력, 옵션을 통해 다른 단위로 출력 가능
하드디스크, SSD, USB, 네트워크 드라이브 등의 사용 가능한 공간과 전체 크기를 볼 수 있어.
명령어 chgrp
파일이나 디렉터리의 소유 그룹을 바꾸는 명령어
3. 파일/etc/fstab (file system table)
리눅스에서 사용하는 파일 시스템 정보를 정적으로(고정적으로) 저장하고 있는 파일
리눅스 파일 시스템 정보와 부팅 시 마운트(파일 시스템/저장 장치 자동으로 연결) 정보를 가지고 있음
리눅스가 부팅되면서 어떤 파티션들을 어디에 자동으로 마운트하고 외부 장치들에 대한 마운트를 어떻게 설정할 것인지 그리고 사용 권한 및 복구 등과 관련된 옵션을 어떻게 지정할 것인지에 대해 설정하는 파일, 6개의 필드로 구성
[파일 시스템 장치명] [마운트포인트][파일 시스템 종류] [옵션] [dump관련 설정] [파일점검옵션]
/dev/sdb1 /backup ext4 defaults
첫번째 필드에는 파일 시스템 장치명(ex, /dev/sdb1), 볼륨 라벨(LABEL=/home), 또는 UUID(UUID=cb929e4a-f1ac-4087/~~)가 올 수 있음
마운트포인트 : /mnt/fat32
파일 시스템 종류 : vfat(=FAT-32 파일 시스템), ext3
파일점검옵션 dafaults : rw, nouser, auto, exec, suid
명령어 blkid (Block Device)
디스크 파티션에 부여된 UUID(Universally Unique Identifier) 값 확인, 블록 장치의 UUID, 파일 시스템 유형, LABEL 등을 출력, 디스크와 파티션 정보를 확인할 때 사용, /dev/sdX, /dev/nvmeXnYpZ 같은 장치의 메타데이터를 읽음
* UUID란?
개체를 구분하는 고유번호로 리눅스에서는 파티션 생성 시 부여됨
기타
하드 디스크(HDD, Hard Disk Drive)란?
컴퓨터에서 데이터를 영구적으로 저장하는 저장 장치야.
운영체제(OS), 프로그램, 문서, 사진, 동영상 등 모든 파일이 여기에 저장돼.
명령어 mput(multiple put)
여러 개의 파일을 동시에 전송할 때, 사용
ex. mput backupp.tar.gz
bye
EOF
cat ftp.sh 명령어
ftp.sh라는 쉘 스크립트 파일의 내용을 출력하는 명령어
echo $LANG
셸 사용 시 기본적으로 지원되는 언어 확인
echo $TERM
$TERM은 환경 변수(environment variable) 중 하나로, 현재 사용 중인 터미널 에뮬레이터의 유형을 나타냄.
터미널 유형(Terminal Type) 을 출력
*free
사용 중인 메모리와 사용하지 않는 메모리, 스왑 메모리 등의 전체적인 메모리 현황을 확인하는 명령어
'Linux' 카테고리의 다른 글
[리눅스 마스터 2급] 1과목 리눅스 운영 및 관리, 프로세스 관리 (0) | 2025.02.25 |
---|---|
[리눅스 마스터 2급] 1과목 리눅스 운영 및 관리, 셸(Shell) (0) | 2025.02.25 |
[리눅스 마스터 2급] 1차 시험 후기 (1) | 2025.02.07 |
[리눅스마스터 2급] nice 명령어 (1) | 2025.01.22 |
[리눅스마스터 2급] fsck 옵션 설명 (0) | 2025.01.19 |