권한 및 그룹 설정
리눅스 시스템의 모든 파일과 디렉터리에는 접근권한과 소유권이 부여된다.
chown
파일과 디렉터리의 사용자 소유권과 그룹 소유권을 변경한다.
$ chown [옵션] 소유자[:그룹명] 파일명
$ chown -R root testDir
$ chown -R :myGroup testFile
옵션
-R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일에 적용
chgrp
파일과 디렉터리의 그룹 소유권을 변경한다.
$ chgrp [옵션] 그룹명 파일명
$ chgrp -R myGroup testFile
옵션
-R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일에 적용
permission file types
기호 | 파일 유형 |
---|---|
- | 일반 파일 |
d | 디렉터리 파일 |
b | 블록 단위의 블록 장치(저장 장치 등) 특수 파일 |
c | 문자 장치(입출력 장치 등) 특수 파일 |
l | 기호적 링크 |
p | 파이프 |
s | 소켓 |
chmod
파일과 디렉터리의 접근 허가권을 변경한다.
$ chmod [옵션] 권한코드 파일명
$ chmod 664 testFile
$ chmod -R o+w testDir
옵션
-R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일에 적용
umask
새로 생성되는 파일이나 디렉터리의 기본 허가권 값을 지정한다.
$ umask [옵션] [값]
$ umask 0022
이 때, 파일이나 디렉터리 생성 시 디폴트 권한 값 (파일 : 666, 폴더 : 777) 에서 설정한 umask 값을 뺀 값이 기본 허가권이 된다.
옵션
-S : umask 값을 문자로 표기한다
특수 권한
SetUID (s : 4000)
사용자가 사용할 때 소유자 권한을 파일을 실행시킨다.
SetGID (s : 2000)
사용자가 사용할 때 그룹 권한으로 파일을 실행한다.
이는 하위 디렉터리나 폴더에도 적용된다.
Sticky Bit (t : 1000)
공용 디렉터리를 사용할 때 설정하며, 이것이 설정된 디렉터리 내의 내용은 해당 파일의 소유자나 root만이 삭제 가능하다.
/tmp
폴더와 관련이 깊다.
디스크 쿼터
파일 시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량 및 개수를 제한하는 것이다.
quotacheck
파일 시스템의 디스크 사용 상태를 검색
옵션
-a : 모든 파일 시스템을 체크 (All)
-m : 재마운트를 생략 (no-reMount)
-n : 첫 번 째 검색된 것을 사용 (No1?)
-p : 처리 결과를 출력 (Print)
-v : 파일 시스템의 상태를 보여줌 (Verbose)
edquota
편집기를 이용하여 사용자나 그룹에 디스크 사용량을 할당
옵션
-t : 디스크 할당량 유예기간 설정 (Time)
-p : 설정을 다른 사용자와 동일하게 설정 (Prototype)
setquota
명령행으로 사용자나 그룹에 디스크 사용량을 할당
옵션
-a : 해당 시스템의 모든 설정 (All)
-t : 유예기간을 초 단위로 설정 (Time)
quotaon / quotaoff
쿼터 서비스를 실행 / 중지한다.
절차
/etc/fstab
파일에 디스크 쿼터 관련 설정usrjquota=quotafile.user
등- 파일시스템에 따라
quota
/usrquota
/usrgquota
등으로 분기된다.
quotacheck
->edquota
->quotaon
파일 시스템의 관리
리눅스와 유닉스에는 다양한 파일 시스템이 존재해왔다.
리눅스 파일 시스템의 구조
구조 | 설명 |
---|---|
Super Block | 해당 파일 시스템 관련 정보 블록의 크기, 총 블록의 개수, inode의 개수 등 |
Group Descriptor Table | 각 Block Group을 관리하는 정보 저장 Block Bitmap과 inode Bitmap 의 블록 번호, 그룹 안의 빈 블록 수, 그룹 안의 inode 수 등 |
Block Bitmap | 그룹 내에 있는 각 블록의 사용 상태를 나타냄 |
inode | 파일에 대한 제어 정보 및 데이터 블록 포인터 해당 파일의 모든 정보를 저장 모든 파일과 디렉터리들은 각각 1개의 inode를 할당 |
리눅스 전용 디스크 기반 파일 시스템
ext
- 리눅스 초기에 사용, 호환성이 없다
- inode 및 타임스탬프 수정 지원 불가
ext2
- 고용량 디스크 사용을 염두에 둔 ext의 다음 버전
- 쉽게 호환되며 업그레이드 또한 쉽도록 설계
ext3
- 저널링 (journaling) 을 지원
- ACL (Access Control List) 를 통한 접근 제어 지원
ext4
- 파일에 물리적으로 연속된 블록을 할당하여 속도 향상
- 64비트 기억 공간 제한을 없앰
저널링 파일 시스템
시스템의 비정상적인 종료 시 저널 (로그) 을 이용해 빠르고 안전한 복구가 가능하다.
JFS
- Journaling File System (IBM)
- GPL로 공개하여 리눅스용으로 개발됨
XFS
- eXtended File System
- 64비트 주소와 64비트 파일 시스템을 지원
- 높은 확장성과 처리량을 가진다.
- 데이터 IO 트랜잭션으로 성능 저하를 최소화
ReiserFS
- 가장 안정적인 리눅스용 저널링 파일 시스템
- 모든 파일 객체를 B트리에 저장
- 간결하고 색인화된 디렉터리 지원
네트워크 파일 시스템
SMB
- Server Message Block
- samba 파일 시스템을 마운트 지정
- 윈도우에서 파일, 프린터 공유 프로토콜로 사용됨
- 윈도우에서 표준 클라이언트 환경으로 처음부터 구성됨
CIFS
- Common Internet File System
- SMB 를 확장하여, 라우터를 뛰어넘어 연결 가능
NFS
- Network File System (SUN)
- 운영체제 또는 네트워크 구조가 달라도 공유가 가능하다.
- 특정 디렉터리를 마운트하여 사용 가능한 파일 공유 서버
기타 파일 시스템
FAT
- Windows NT가 지원하는 가장 간단한 시스템
- samba 파일 시스템을 마운트 지정
VFAT
- Virtual FAT 으로서 FAT의 확장
FAT32
- Windows 95, 98, ME 같은 버전과 다중 부팅을 구성
- 32GB보다 큰 파티션이 불가능하며, 4GB를 초과하는 파일 지원 불가
NTFS
- 윈도우에서 사용하는 파일 시스템
- 안정성과 보안성이 뛰어남
- 16EB (실질적 2TB) 파일 크기 및 볼륨 제한
ISO 9660
- CD-ROM의 표준 파일 시스템
UDF
- Universal Disk Format (OSTA)
- 광학 매체용 파일 시스템 표준 (DVD)
HPFS
- OS/2 운영체제를 위해 개발
- Microsoft & IBM
mount
특정 디바이스를 특정 디렉터리처럼 사용하기 위해 장치와 디렉터리를 연결한다.
$ mount [옵션] [디바이스명] [디렉터리명]
옵션
-a : /etc/fstab 에 정의된 모든 시스템 마운트 (All)
-n : /etc/mtab 에 저장하지 않고 마운트 (No save?)
-f : 마운트 가능여부를 테스트 (False mount?)
-t : 파일 시스템 타입을 지정 (Type)
-o : 추가 옵션 설정 (Option)
umount
마운트를 해제한다.
$ umount [옵션] [디바이스명] [디렉터리명]
옵션
-a : /etc/mtab 에 정의된 모든 시스템 마운트 해제 (All)
-n : /etc/mtab 에 저장하지 않고 마운트 해제 (No save?)
-t : 언마운트할 파일 시스템 타입을 지정 (Type)
eject
이동식 보조기억장치 등의 미디어를 해제하고 장치를 제거한다.
$ eject [옵션] [디바이스명]
옵션
-r : 시디롬 마운트 해제 (cd-Rom)
-f : 플로피 마운트 해제 (Floppy)
fdisk
새로운 파티션 생성, 파티션 삭제, 파티션 타입 결정 등의 작업을 수행한다.
$ fdisk [옵션] [장치명]
옵션
-l : 현재 디스크의 파티션 테이블 정보 표시 (List)
-s : 지정된 파티션의 크기를 블록 단위로 표시 (Size)
명령어
p : 디스크 정보 표시 (Print)
n : 파티션 생성 (New)
t : 파티션 속성 지정 [Swap, RAID 등] (Target)
d : 파티션 삭제 (Delete)
w : 파티션 변경사항 저장 (Write out)
q : 파티션 작업 종료 (Quit)
mkfs
파티션에 리눅스 파일 시스템을 생성한다.
$ mkfs [옵션] 장치이름
옵션
-v : 자세한 정보 보기 (Verbose)
-t : 생성할 파일 시스템 타입 지정 (Type)
-c : 배드블록 검사 (Check)
-l 파일명 : 파일명으로부터 배드블록 목록 읽기 (List from file)
mke2fs
파티션에 ex2, ext3, ext4 계열의 리눅스 파일 시스템을 생성한다.
$ mke2fs [옵션] 장치이름
옵션
-t : 생성할 파일 시스템 타입 지정 (Type)
-b : 블록 크기를 바이트 수로 지정 (Byte)
-f : 프래그먼트 크기 지정 (Fragment)
-i : inode 당 바이트 수 지정 (Inode)
-j : 저널링 파일 시스템 ext3 으로 지정 (Journal)
-R : RAID4 장치 포맷 옵션 (Raid4)
fsck
파일시스템의 무결성을 점검하고 복구한다.
/lost+found
디렉터리를 사용하여 복구를 진행한다.
$ fsck [옵션] 장치이름
옵션
-A : /etc/fstab 의 모든 파일 시스템 점검 (All)
-a : 질의 없이 자동 복구 (auto)
-r : 질의 후 복구 (Report)
-s : 작업을 시리얼화 (Serialize)
-t : 점검할 파일 시스템 유형 지정 (Type)
e2fsck
ex2, ext3, ext4 계열 파일시스템의 무결성을 점검하고 복구한다.
$ e2fsck [옵션] 장치이름
옵션
-p : 파일시스템을 검사하며 자동으로 복구 (Preen)
-n : 답변을 no로 취급하여 검사만 진행 (No)
-y : 답변을 yes로 취급 (Yes)
-c : 배드블럭을 검사한다 (Check)
-f : 깨끗한 파일 시스템까지 강제적으로 검사한다 (Force)
du
Disk Usage 로서 디렉터리별로 디스크 사용량을 확인한다.
$ du [옵션] [파일 및 디렉터리명]
옵션
-h : 용량 단위를 읽기 좋게 표시 (Human-readable)
-a : 모든 파일에 대한 정보 표시 (All)
-m : 용량을 MB 단위로 표시 (MB)
-k : 용량을 KB 단위로 표시 (KB)
-s : 사용량의 총 합계와 파일의 전체 크기를 합한 값으로 표시 (--summarize)
-c : 모든 파일의 정보를 보여주고 합계 표시 (--total)
df
마운트된 하드 디스크의 용량을 파티션 단위로 사용량을 확인한다.
$ df [옵션] [파일명]
옵션
-h : 용량 단위를 읽기 좋게 표시 (Human-readable)
-a : 모든 파일에 대한 정보 표시 (All)
-T : 파일 시스템 유형과 정보 출력 (Types)
-t : 표시할 파일 시스템 유형 지정 (Type)
-k : 1k-block 크기로 표현 (--block-size=1k)
-i : inode 사용률 확인 (Inode)
/etc/fstab
리눅스에서 사용하는 파일 시스템 정보를 정적으로 저장하고 있는 파일이다.
- 파일 시스템 장치명
- 장치명, UUID
- 마운트 포인트
- 파일 시스템이 마운트될 위치 명시
- 파일 시스템 종류
- 파일 시스템의 종류를 설정한다
- 옵션
- 파일 시스템의 속성을 설정한다
- noauto : 부팅 시 자동 마운트 비활성화
- noexec : 실행파일 실행 비허용
- nosuid : setuid setgid 비활성화
- nouser : 일반 사용자들은 마운트 권한 부여 금지
- dump 관련 설정
- 0 : 덤프 불가
- 1 : 매일 데이터 백업 가능
- 2 : 격일로 데이터 백업 가능
- 파일 점검 옵션
- 0 : 부팅 시 점검하지 않음
- 1 : 루트 파일 시스템 점검
- 2 : 루트 파일 시스템 이외를 점검
'공부한 이야기 > 리눅스' 카테고리의 다른 글
리눅스 - 주변기기 (0) | 2022.08.21 |
---|---|
리눅스 - 소프트웨어 관리 (0) | 2022.08.21 |
리눅스 - 에디터 (0) | 2022.08.21 |
리눅스 - 프로세스 관리 (0) | 2022.08.20 |
리눅스 - Shell (0) | 2022.08.20 |