I. 파일 및 디렉터리 관리
종류 |
의미 |
일반파일 |
-일반적으로 문서 파일이나 이진 파일을 나타냄 -문서파일: 128개의 ASCII 문자코드로 구성 -이진파일: 문자가 아닌 0과 1로 구성된 데이터 파일(실행 파일) |
디렉터리파일 |
-디렉터리 명시적 시스템 호출을 통해서만 참조(실제 파일 포함X) -다른 디렉터리를 포함할 수 있는 트리(tree) 구조인 계층적 구조를 가짐 -기본적으로 "."과 ".."이 생성되는데 "."은 자기자신, ".."은 부모 디렉터리를 가리킴 |
특수파일 |
-프린터, CD-ROM, 디스크와 같은 주변 장치, 프로세스 간 상호통신하는 파일을 일컫음(리눅스 자원 관리 디바이스) -하드 디스크경우 "/dev/sda1", "/dev/sda2"와 같이 사용(윈도우즈에선 "C:", "D:") |
d |
FILE Type |
| |
rwxr-xr-x |
허가권 |
2 |
링크 수 |
root |
소유권(소유권자) |
root |
소유권(소유그룹) |
4096 |
파일용량 |
2018-02-21 13:57 | 날짜와 시간 |
test | 파일명 |
*허가권: rwx와 같이 표시되며, chmod 명령어로 변경할 수있다.
File에서의 rwx 권한 |
|
r |
문서 읽기 (vi, cat, head, tail, more) |
w |
문서 수정 (vi, redirection) |
w |
실행 (일반 문서 파일에는 x권한이 없음) [ex) 명령어 파일] |
Directory에서의 rwx 권한 |
|
r |
디렉터리 목록 보기 (ls) |
w |
파일/디렉터리 생성, 이동, 복사, 삭제 (mkdir, touch, mv, cp, rm) |
x | 접근 (cd) ※dir에 x권한이 없으면 대부분의 명령어가 안됨 ex) rw- 이여도 r, w 권한 없음 ※dir에 r권한이 없어도 w권한 사용 가능 (문제발생 우려로 사용금지) |
chmod: 허가권 변경 명령어
chmod [방식] [target] |
||
방식 |
기능 |
예시 |
symbolic (상대 모드) |
권한추가 / 횟수 |
[test: -rwxr-xr-x] chmod u-x test ▶ [test: -r-xr-xr-x] chmod g+w test ▶ [test: -r-xrwxr-x] chmod o-r test ▶ [test: -r-xrwx--x] chmod a-x test ▶ [test: -r--rw----] chmod ug+x test▶ [test: -r-xrwx---] chmod g-rx test ▶ [test: -r-x-w----] chmod u+x,o+x test ▶ [test: -r-x-w---x] |
+: 권한 부여, -: 권한 제거, =: 권한 유지 / s: 소유자의 그룹만 실행, u: 소유자, g:그룹, o:다른사용자, a: 모두 |
||
numeric (절대 모드) |
덮어쓰기 |
chmod 755 test ▶ [test: -rwxr-xr-x] chmod 566 test ▶ [test: -r-xrw-rw-] |
*소유권
chown: 소유권 변경 명령어
chown [계정명] [target] //옵션: -R (하위 디렉터리까지 전부 변경) |
|
방식 |
예시 |
: (Unix 계열) |
chown 계정명:계정명, chown 계정명:, chown :계정명 |
. (Linux 전용) |
chown 계정명.계정명, chown 계정명., chown .계정명 |
[test: root root] (앞: 소유권자, 뒤: 소유그룹) chown user1 test (소유권자만 변경) ▶ [test: user1 root] chown user2.user1 (둘다 변경) ▶ [test: user2 user1] chown .user2 (소유그룹만 변경) ▶ [test: user2 user2] chown user1. (둘다 변경) ▶ [test: user1 user1] |
*특수 권한
umask: file/dir생성 시 퍼미션을 자동으로 설정하기 위한 마스크값 (기본값: 022 [홈디렉터리값:077])
종류 |
최대권한 - umask = 기본권한 |
디렉터리 (최대값: 777) |
777 - 022 = 755 |
파일 (최대값: 666) |
666 - 022 = 644 |
홈디렉터리 공간[계정 전용공간] | 777 - 077 = 700 (해당 계정 본인만 이용가능하도록) |
umask 확인 |
umask |
#umask 0022 //제일 앞 0은 무시 |
|
umask 변경 |
umask [마스크값] (로그아웃시 초기화 되므로, /etc/profile 에서 umask값 변경을 유지시킬 수 있다.) |
#umask 002 0002 |
SetUID: 소유권자의 권한으로 대신 실행해준다.
-symbolic으로는 S나 s로 표현되며, numeric으로는 4000으로 표현된다. [S는 x권한이 없고, s는 x권한이 있음을 표현]
SetGID: 소유그룹의 권한으로 대신 실행해준다 (※거의 사용되지 않음)
-symbolic으로는 S나 s로 표현되며, numeric으로는 2000으로 표현된다.
스티키 비트(sticky bit): 이 권한이 설정된 디렉터리는 모든 유저의 file/dir의 생성은 자유롭지만, 삭제/변경 시에는 소유권자나 관리자만 가능하다. 그리고 디렉터리에만 적용되는 권한이다.(ex. 게시판, 공유폴더)
-symbolic으로는 T나 t로 표현되며, numeric으로는 1000으로 표현된다.
|
Windows |
Linux |
하드장치명 |
disk |
/dev/sd[x] (x=a,b,c,d) |
파티션 명 |
C:, D: |
/dev/sdx[n] (n=1,2,3,4) |
파티션 도구 |
disk part |
fdisk |
포맷 도구 |
window 탐색기 |
mkfs |
File System |
FAT시리즈, NTFS |
ufs, ext시리즈 |
장치 연결 | plug&play(자동) | mount(수동) |
순서: 하드장착 ▶ 파티션 ▶ 포맷 ▶ 마운트 |
1) 하드 장착
종류 |
이름표기 |
내용 |
IDE |
/dev/hd[x] (6.x버전부터는 /dev/sd[x]) |
CPU가 하드관리 (부팅 완료 시 장착 불가) |
SCSI | /dev/sd[x] | 내부의 SCSI칩이 직접 관리 (부팅 완료 시 장착 가능) |
2) 파티션: physical 최대 4개, primary(주영역) 최대 3~4개, extends(확장영역) 최대 1개, logical(논리 영역) 무한개[extends안에서만 존재]
*fdisk: 파티션 도구
fdisk [하드장치명] //fdisk -l: 전체 하드 리스트 |
|
fdisk 도구 옵션 |
의미 |
a |
부트 가능한 플래그로 변경 |
b |
bsd 디스크 레이블을 편집 |
c |
도스 호환 플래그로 변경 |
d |
파티션 삭제 |
l |
알려진 파티션 형태의 목록 |
m |
명령어 항목 출력 |
n |
새로운 파티션 추가 |
o | 새로운 도스 파티션 테이블 생성 |
p | 파티션 테이블 출력 |
q | 변경을 저장하지 않고 종료 |
s | 새로운 Sun 디스크 레이블을 생성 |
t | 파티션 시스템 id 변경 |
u | 표시/엔트리 단위 변경 |
v | 파티션 테이블 점검 |
w | 디스크에 테이블 기록 후 종료 |
x | 특별한 기능, 전문가 모드(실린더 번호, 파티션순서, 헤드의 수, 트랙당 섹터수 등을 변경) |
sbd 파티션 나누기 예시 (하드용량: 1GB) | |
|
Primary 3개 구성하기 |
p명령어로 3개로 구성된 Primary 영역 확인 |
|
|
extends로 분할 (이 자체는 저장장치가 아님) extends영역에 4개의 logical 영역을 추가 |
p명령어로 나눠진 파티션 확인 후 w로 저장 |
3) 포맷: 파일시스템의 생성 및 설치이다. fdisk로 분할된 파티션들은 파일시스템으로 만들어져야 운영체제상에서 활용될 수 있다.
*mkfs(Make File System): 포맷 도구
mkfs [옵션] [파티션명] |
|
옵션 |
의미 |
-V |
실행되는 모든 파일 시스템 명령어들을 포함하여 상세한 정보를 출력 |
-t |
생성할 파일 시스템 형식을 선택 (미지정 시 기본값으로 ext2) |
-c |
배드블럭을 조사하고 결과에 따라 배드블럭 리스트를 초기화 |
-l | Filename이라는 파일로부터 초기 배드블럭 리스트를 읽어 들임 |
-v | 현재 진행 상황에 대해 자세히 출력 |
사용법 |
mkfs -t [fstype] [파티션명] (fstype 미지정시 기본으로 ext2) |
# mkfs -t ext4 /dev/sdb1 //ext4 시스템 생성 |
mkfs.[fstype] [파티션명] |
# mkfs.ext4 /dev/hda2 //ext4 시스템 생성, # mkfs.xfs /dev/hda3 //xfs 시스템 생성 |
mkefs 도구 |
mkefs -h /dev/hdb1 //ext3시스템 생성, # mkefs -T ext4 /dev/sdb1 //ext4 시스템 생성 |
*SWAP 파일 시스템 생성: 리눅스의 가상메모리를 사용하기 위한 파일 시스템
스와핑 사용 방법 |
|
mkswap [옵션] [장치명] [size] (옵션= -c: 디스크 배드블록 검사, -f: 무조건 실행, size: SWAP 영역 크기 지정) | |
SWAP 파티션 방식 |
나눠진 파티션 중 하나를 스와핑 영역으로 사용하는데, 파티션 단위의 처리여서 유연성은 떨어지지만, 효율이 SWAP 파일 방식에 비해 높다. |
생성법: fdisk 도구에서 t 명령어로 id값을 82번으로 변경후 저장후 mkswap 명령어 사용 | |
# mkswap -c /dev/hda6 //fdisk로 swap파티션 생성 후 실행 | |
SWAP 파일 방식 |
일반적인 파일 시스템에 존재하는 파일을 스와핑 영역으로 사용하는 것으로, 필요시 스와핑 영역을 유연하게 늘리고 줄일 수 있으나 파티션 방식보다 효율이 떨어진다. |
생성법: dd명령으로 파일 생성 후 mkswap 명령어 사용 | |
# dd if=/dev/zero of=/swapfile bs=1024 count=8192 //파일 생성 # mkswap swapfile 8192 //swap파일 생성 # sync # swapon swapfile //swap파일 활성화 | |
SWAP 활성화/확인 | 위와 같이 swapon으로 활성화하고, 비활성화 시 swapoff 명령을 사용한다. (swapon -s: SWAP 파일 시스템 사용량 확인) |
부팅시 자동 활성화 | /etc/fstab에 다음과 같이 추가 |
SWAP파티션: /dev/had6 swap swap defaults 0 0 SWAP파일: /swapfile swap swap defaults 0 0 디바이스 활성화: swapon -va |
4) 마운트: 하드디스크 파티션이나 다른 미디어를 사용할 수 있게 디렉터리에 연결하는 명령어이다.
*하드디스크의 마운트 조건: 파티션을 나누고, 포맷이 완료된 후, 마운트 포인트 할 디렉터리가 생성되어야 한다.
*mount:/umount 마운트 설정/해제 명령어
mount [옵션] [장치명] [마운트 포인트] (옵션= -t: 마운트할 파일 시스템 형식 지정) |
|
umount [장치명 or 마운트 포인트] (unmount하고 헷갈리지 말 것) |
|
# mount /dev/sdb1 /mp1 //mp1(마운트 포인트)에 연결 |
|
# umount /mp1 //마운트 해제 |
|
# mount -t nfs [IP:/EXPORT DIR] [mp] //원격 nfs 파일 시스템에 연결 |
※마운트 시 주의사항: 한 개의 장치는 한개의 mp를 가져야 하며, mount와 umount 작업 시 mp 밖에서 작업해야 한다.
마운트 확인
cat /etc/mtab |
/etc/mtab 파일은 시스템에 마운트 된 파일시스템이나 디바이스 정보를 알 수 있도록 한 파일이다. |
df -h |
가장 많이쓴다. |
df -Th |
위 목록에서 fstype까지 보여준다. |
부팅 시 자동 마운트
/etc/fstab에 자동 마운트를 추가할 항목을 넣어준다. |
|
/dev/sdb1 |
마운트 할 디바이스 명 |
/mp | 마운트 포인트 |
ext4 | 마운트할 파일 시스템 종류 |
defaults | 마운트 옵션 |
auto: 자동마운트 / noauto: 자동마운트X(-a 옵션 사용 시, noauto되어있는 줄은 제외됨) defaults:일반적인 파일시스템 remount:재마운트 ro:읽기전용 / rw: 읽기&쓰기 전용 nouser: 일반사용자 마운트 금지 / user: 일반 사용자 마운트 허용 | |
1 | 파일 시스템의 백업 여부 |
0: 파일 시스템 백업 X ▶ SWAP 1: 백업 대상 포함 ▶ 모든 파티션 | |
2 | 재부팅 시 자동 검사 순서 (0: 부팅 시 파일 검사X[스왑,CD-ROM] |
0: 부팅 시 파일 검사 X ▶ SWAP, CD-ROM 1: 시스템 부팅 시 해당 파일 시스템일 제일 먼저 검사 ▶ 루트 파일 시스템 2: 1로 설정된 파일 시스템의 점검이 끝난 후 검사 ▶ 그 외의 파일 시스템 |
5) 파일 시스템 점검과 복구: 파일 시스템이 깨졌을때, 이를 복구하기 위한 절차이다.
*fsck/e2fsck
fsck [옵션] [파티션] |
fsck는 /etc/fstab 파일에 설정되어 있는 파일 시스템을 기본 작업 대상으로 하며, 반드시 마운트 해제 후 작업해야 한다. |
# umount /dev/sdb1 | |
실제 작업 없이 특정 파일 시스템의 점검을 시뮬레이션 돌릴 수도 있다. | |
# fsck -N -t ext4 /dev/sdb1 | |
▲종료코드 0:정상종료 / 1: FS복구 /2: FS복구 후 재부팅요 / 4: FS문제가 있으나 복구X / 8: 실행 에러 / 16: 사용법or문법에러 / 32: fsck작업이 사용자에 의해 취소 / 128: 공유 라이브러리 에러 | |
e2fsck [옵션] [파티션] |
ext2, ext3, ext4 파일시스템을 점검하기 위해 사용되며, 반드시 마운트 해제 후 작업해야 한다. |
# umount /dev/sdb1 # e2fsck /dev/sdb1 |
|
# e2fsck -c [파티션] or # mke2fs -cj [파티션] //디스크 파티션의 배드블록 체크(badblocks 명령보다 나음) //즉, 배드블록 체크를 위한 명령어는 "e2fsck, mke2fs, badblocks" 들이 있다. |
백업수퍼블록을 이용한 파일시스템복구: 파일 시스템을 자동복구 하지 못한 경우에 사용한다.
# dumpe2fs /dev/sda3 | grep superblock //먼저, 백업수퍼블록이 존재하고 있는 번호를 알고 있어야한다. |
# e2fsck -b 8194 -f -y /dev/sda3 //위에서 나온 번호(8194)로 백업 수퍼블록 복구 |
지워진 파일 복구: 지워진 파일이 있는 파티션을 최대한 빨리 언마운트시킨 후 작업한다.
debugfs -w /dev/sda7 //지워진 디렉토리의 inode 번호 찾기 |
debugfs : dump <inode번호> [저장될 파일명] //디스크에 덤프 |
xxd debugfs-dump | less //덤프된 inode 확인 |
echo lsdel | debugfs /dev/sda7 > lsdel.out //지워진 inode 원위치 |
6) quota: 사용자 계정에 디스크 및 아이노드 할당량 명령어
quota |
설정된 각 사용자의 쿼타를 확인한다. |
edquota |
각 사용자의 디스크 쿼타를 설정한다. |
quotaon |
시스템에서 쿼타를 가동한다. |
quotaoff |
시스템에서 쿼타가동을 중지한다. |
quotacheck |
시스템에서 쿼타상황을 체크한다. |
repquota |
사용자들의 쿼타설정내역을 확인한다. |
'자격증 > 리눅스 마스터 1급' 카테고리의 다른 글
Part2) 리눅스 시스템 관리 - 장치 관리 | 장치의 설치 및 관리 (0) | 2018.02.28 |
---|---|
Part2) 리눅스 시스템 관리 - 일반 운영 관리(3) | 프로세스 관리, S/W설치 및 관리 (0) | 2018.02.22 |
Part2) 리눅스 시스템 관리 - 일반 운영 관리(1) | 사용자 관리 (0) | 2018.02.20 |
Part1) 리눅스의 실무의 이해 - 네트워크의 이해(2) | 네트워크 설정 (0) | 2018.02.14 |
Part1) 리눅스의 실무의 이해 - 네트워크의 이해(1) | 네트워크 기초 (0) | 2018.02.13 |