1. 파일 시스템 관련 명령어
chown 소유자 또는 소유자그룹울 변경
chown [옵션] 소유자 [ : 소유자그룹] [파일 및 디렉토리]
chown -R root filename , chown root :root filename
옵션
-c —changes 기존에 지정된 모드에서 변경된부분만 출력
-f —slient,—quiet 오류메세지 출력 x
-v —version 처리된 모든파일 및 디렉토리에 대한 메세지 출력 (자세히출력)
-h 심볼릭링크 파일이변경
-R 지정한 파일 하위까지 변경
chmod [OPTION] [MODE] [FILE]
OPTION
-c: 변경된 파일만 자세하게 보여준다.
-f: 변경되지 않은 파일에 대해서 오류 메시지를 보여주지 않는다.
-v: 작업상태를 자세히 보여준다. 결과 자세히
-R: 경로와 그 하위 파일들을 모두 변경한다.
chgrp [옵션] [그룹] [파일] 파일의 사용자 그룹 변경
chgrp -R newgroup filename
-c: 변경된 파일만 자세하게 보여준다.
-f: 변경되지 않은 파일에 대해서 오류 메시지를 보여주지 않는다.
-v: 작업상태를 자세히 보여준다.
-R: 경로와 그 하위 파일들을 모두 변경한다.
umask 파일 및 디렉토리 생성시 기본 접근권한(permission) 설정
umask 002 접근권한 002로 변경
umask -S 문자로 출력 출력값 : u=rwx, g=rwx o=rx
파일 666-000 : 파일 644 rw rw rw ,umaks 222 : 파일 r--r--r-- ,umask 555 : 파일 www(222)
디렉토리 777-002 : 디렉토리 755 rwx rx rx
특수권한
**기존 파일 권한 777일 경우 아래 ex)**
**SetUID** 이권한이 있는 파일을 실행하는 동안에는 파일 소유자의 권한으로 실행되도록함
소유자 권한 부분의 x 자리에 s 로 표기 된다.
실행 권한이 없을 경우 대문자 S 로 표시된다. //u+s 하면 소문자 s
chmod rwsrwxrwx 숫자표기 chomod 4777,chomod u+s
**SetGID 실행하는동안 파일 소유자그룹 권한으로 실행되도록함
그룹 권한 부분의 x 자리에 s 로 표기 된다.
실행 권한이 없을 경우 대문자 S 로 표시된다. /g+s 소문자 s
chomod rwxrwsrwx 숫자표기 chmod 2777,chmod g+s
Sticky-Bit 일반사용자들은 자신이 생성한것 이외에는 수정 삭제 불가능
디렉터리에만 적용된다.
시스템 기본 폴더인 /tmp 디렉터리에 설정되어 있다.
실행 권한이 없을 경우 대문자 T 로 표시된다. /o+t 소문자 t
chomod rwxrwxrwt 숫자표기 chmod 1777 , chmod o+t**
파일시스템의 파일 개념
장치파일 , 디렉토리파일 , 일반파일 ##실행파일은 아님
파일종류
- 일반파일 정규파일
b 블록디바이스
c 캐릭터 디바이스
dev/tty dev/usb dev/fd
d 디바이스
l 심볼릭 링크 파일
소캣파일
파이프 파일
디스크 쿼터
리눅스 시스템은 기본적으로 사용자의 용량을 제한하지 않는다. 그러므로 여러 사용자가 동시에
접속 할수있는 서버에서 특정사용자가 디스크의 모든 용량을 사용할시 다른사용자가 용량을 사용
하지 못하는 상황이 발생된다 이런 문제를 해결하기위해 여러명이 사용하는 서버에서 디스크의 용량
을 제한할 필요가있다 이런 제한을 디스크 쿼터라고 한다
quota 설정된 각 사용자(그룹)의 쿼타(quota)를 확인한다.
- u : 사용자 쿼터 정보 출력
- g : 그룹 쿼터 정보 출력
ex) quota -u username1
quotaon 시스템에서 쿼타(quota)를 가동합니다.
- a(all) : 전체파일 시스템의 쿼터 기능을 활성화
- u : 사용자 쿼터를 활성화 시킴
- g : 그룹 쿼터를 활성화한다
- v : 명령 진행 상황을 상세하게 출력한다.
ex) quotaon -augv
quotaoff 시스템에서 가동중인 쿼타(quota)를 중지합니다.
edquota 쿼터(할당량)를 설정하는 명령
- u [사용자] : 사용자의 할당량을 수정
- g [그룹] : 그룹의 할당량을 수정
- p [복사대상] [적용대상] : [복사대상]에 설정된 할당량을 복사해서 [적용대상]에 적용함
ex) edquota -p -u 튤립 벚꽃 : 사용자인 튤립의 할당량을 벚꽃에게도 적용함
- t : grace(유예기간(아래에서 설명하겠다))값을 수정. [단위: days, hours, minutes, seconds]
quotacheck 파일시스템에서 쿼터 관련 체크를 하는 명령(설정한 쿼터가 실제로 적용됨)
- a(all) : 모든 파일 시스템을 체크
- u(user) : 사용자 쿼터 관련 체크
- g(group) : 그룹 쿼터 관련 체크
- m(no-remount) : 재마운트 생략
- n(use-first) : 첫 번째 검색된 것을 사용
- p(print-state) : 처리 결과를 출력
- v(Verbose) : 파일 시스템의 상태를 보여줌
repquota 사용자별 현재 사용량을 확인할 수 있는 명령./쿼터 정보 요약 출력
- a : /etc/filesystem 에 있는 모든 파일시스템에 관한 할당량을 출력
- c : 결과물을 콜론으로 분리하여 출력
- g : 그룹 할당량만 출력
- l : 긴 이름도 출력될 수 있게 설정.
디폴드는 9자에서 절단하는데 이 옵션을 사용하면 전체 사용자 이름을 볼 수 있다.
- u : 사용자 할당량만 출력
- v : 사용량 (할당량x)없는 쿼터의 정보도 출력
ex) repquota -a
setquota 쿼터를 설정하는 명령 vi 편집기대신 직접 명령줄에서 설정가능
- u : 사용자 쿼터 설정
- g : 그룹 쿼터 설정
- t : 유예기간 설정
ex) setquota -u username 1000 1200 0 0 /home # soft용량제한 1M hard 1M inode제한 x
#디렉토리 home/username X /home O
quota 설명
uota.user 파일에 정보가 저장된다.
quota는 사용자별, 파일 시스템별로 적용된다.
사용자나 그룹에게 할당된 디스크 블록의 수를 제한함 으로써 사용을 제한한다
home 영역에 Quota 설정 순서
etc/fstab 설정 -> /home 영역 remount -> quota파일 생성 -> quota파일 변환
-> 사용자 quota설정 -> quota시작 -> repquota /home
aquota.user 파일 인식 오류
/home/aquota.user 파일을 quota에서 인식하지 못한 경우이므로,
파일을 삭제한 후 다시 생성하거나 아래 명령을 통해 스캔 간 파일을 생성하도록 합니다.
- c 옵션은 create-files를 의미하며 aquota.user 파일을 강제 생성합니다.
---------------------------------------------------------------------------------
quota 설정 과정
1) fstab 수정하기
[root@soma]
LABEL=/ / ext2 defaults 1 1
LABEL=/boot /boot ext2 defaults 1 2
LABEL=/home /home ext2 defaults 1 2
위의 내용은 쿼터를 적용하지 않을 일반적인 fstab 파일이다.
/home 디렉토리내의 일반사용자들에게 쿼터를 걸도록 설정하겠다.
LABEL=/ / ext2 defaults 1 1
LABEL=/boot /boot ext2 defaults 1 2
LABEL=/home /home ext2 defaults,usrquota 1 2
2) quota.user 파일 생성하기
[root@soma]
[root@soma]
3) convertquota 명령어로 quota.user 를 aquota.user 파일로 convert 시키기
convertquota 명령어는 오래된 quotas 파일인 quota.user,quota.group 을
aquota.user,aquota.group 의 새로운 파일 포멧으로 변경시켜준다.
convertquota 명령어는 커널 2.4.0-ac ? 이상
그리고 RedHat 리눅스 2.4이상의 파일 시스템에서 적용
새로운 파일 포맷은 32 bit uids/gids 를 지원하며, root 권한으로 quota를 설정해야하며,
bytes 단위로 사용공간을 체크한다.
convertquota 사용 옵션
-u : user quota file 변경,이것이 기본이다.
-g : group quota file 변경
-V : 버전 정보를 출력한다.
4) 시스템 리부팅 시키기
위의 내용까지 설정했다면 시스템을 리부팅
5) 리부팅후 확인 - 부팅중에 자동으로 quotaon 이 올바르게 실행되는지 확인
[root@redsoma /root]
/dev/sda8 on / type ext2 (rw)
.
.
/dev/sda5 on /home type ext2 (rw,usrquota) --> 이 부분확인
.
.
쿼터 설정하기
6) 현재 시스템내의 쿼터 설정여부 확인하기 - quotacheck / repquota 명령어
quotacheck : 쿼터설정을 reload 하는 기능
repquota : 시스템내의 쿼터 설정을 보여준다.
quotaon : 쿼터를 실행한다.
quotaoff : 쿼터를 중지한다.
[root@soma]
quotacheck: Quota for users is enabled on mountpoint /home so quotacheck might damage
the file.Please turn quotas off or use -f to force checking.
혹 위의 에러메시지가 뜬다면 quotaoff -a 명령어를 먼저 실행하고 quotacheck -a 를 실행
꼭 quotaoff 후에는 quotaon 을 꼭 해줘야합니다.
[root@soma]
[root@soma]
[root@soma /root]
*** Report for user quotas on device /dev/sda5
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 6072 0 0 117 0 0
soma -- 60 0 0 13 0 0
mysql -- 20 0 0 5 0 0
위의 내용을 보면 쿼터 설정이 되어있지 않음을 알수있다.
soft,hard 부분에 모두 0 으로 설정되이있기 때문이다.
* Block limits 은 쉽게말해 용량제한이다 내가 얼마만큼 용량을 사용할수 있는지에대한 설정이다.
* File limits 는 최대한 만들수있는 파일/디렉토리의 총합을 나타낸다.
* soft 는 가변적인 제한이다. grace 와 관계가있다
* hard 는 절대적인 제한이다.
* grace 는 유예기간이다, 쉽게말해서 봐주는 기간이다.이는 soft 한도를 넘어야지만 표시가된다.
위의 내용중에서 soma 라는 사용자의 설정내용을 설명하자면 아래와같다.
현재 60kbytes 를 사용중이며, 아무런 쿼터도 설정되어있지않고
파일과 디렉토리의 총합이 현재 13 개이다.
7) 용량 제한하기 - edquota 명령어
soma 라는 사용자에대해서
최대사용량(Block Limit) 2 M / 최대파일및 디렉토리갯수(File Limit) 20 개로
제한하는 설정을 하겠다.
[root@soma]
-------------------------------------------------------------------------------
Disk quotas for user soma (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sda5 60 2000 2500 13 20 25
-------------------------------------------------------------------------
[root@soma]
[root@soma]
[root@soma]
*** Report for user quotas on device /dev/sda5
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 6072 0 0 117 0 0
soma -- 60 2000 2500 13 20 25
mysql -- 20 0 0 5 0 0
[ 설명 ]
현재 soma 라는 사용자는 60kbytes 를 사용하고있고 최대 2 M 의 공간을 사용할수있게 되었으며,
현재 13 의파일 & 디렉토리가 있고 최대 20 개 까지의 파일과 디렉토리를 만들수 있게 설정되었다.
8) 테스트하기
이제 여기서는 쿼터를 설정한 부분에대해서 어떻게 적용이되고 초과시 어떠한 현상이 나타나는지
확인하겠습니다. 쿼터의 설정내용은 위의 내용과 동일하게 설정된 상태입니다.
TEST - 1 ] 용량 초과하기
이제 soft 제한 용량인 2 M 이상을 soma 라는 디렉토리에 올려보겠습니다.
ftp로 2 M 를 다운 받았다고 가정하겠습니다. 그럼 soma 라는 디렉토리에는 총 2060 kbytes
사용되게됩니다. 이는 soft 제한인 2 M (2000) 을 넘게 되겠죠
[root@soma]
[root@soma]
[root@soma]
*** Report for user quotas on device /dev/sda5
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 6072 0 0 117 0 0
soma +- 2148 2000 2500 7days 14 20 25
mysql -- 20 0 0 5 0 0
[ 설명 ]
Block limits 에 보면 soft 2000, hard 2500 이 설정되있다.
하지만 used 에는 2148 이 사용중이다. 이는 soft 한도는 넘은것이다. soft 한도를 넘었기 때문에
grace 에 7days 라는 날짜가 표기 되었으며 + 기호까지 생겼다. 7days 는 7일동안은 soft 한도를
초가사용해도 용서해준다라는 의미이다.
하지만 7일 이후에는 soft 한도내로 용량을 줄여야지만 새로운 데이타를 올릴수가 있게된다.
중요) 절대로 hard 한도는 넘을수가없다
hard 한도를 넘게되면 더이상 데이타를 저장할수없다는 메시지가 출력되게 된다.
df
df 명령을 사용하면 리눅스 시스템 전체의 (마운트 된) 디스크 사용량을 확인
파일시스템, 디스크 크기, 사용량, 여유공간, 사용률, 마운트지점 순으로 나타납니다.
USB메모리나 SD카드의 저장공간도 여기서 확인이 가능
-h : 메가(M), 기가(G) 단위로 디스크 공간을 확인
-a : 모든 파일 시스템 출력
-T : 보여주는 목록을 파일시스템 타입으로 제한
du
해당 디렉토리의 디스크 크기확인
옵션없으면 현재경로의 모든 디렉토리 크기를 MB단위로 출력
-h : 메가(M), 기가(G) 단위로 디스크 공간을 확인
-a : 하위 디렉토리에 포함된 파일까지 추가 하위 디렉토리 안 각각 용량 표시
-s : 하위 디렉토리없이 추가 하위디텍토리 표시없이 전체 용량표시
-c : 마지막에 모든 파일 디스크의 사용량 합계를 보여 준다.
fsck
파일을 검사하거나 수리해주는 명령어
e2fsck = fsck의 확장 명령어
모든 file system은 그의 root에 lost+found라는 디렉토리를 가져야 된다.
즉, /lost+found 이고 이것은 newfs에 의해 생성된다.
-A 일반적으로 /etc/fstab에 나와 있는 파일 시스템들을 검사하고
/etc/rc 시스템 초기화 파일에서 일관적으로 점검한다.
-R -A옵션과 같이 사용하면 루트 파일 시스템을 제외한 모든 파일시스템을 점검한다.
-T 검사할때 제목을 보여주지 않는다.
-N 실제적으로 실행은 하지 않고 어떤 작업을 할것인가만 보여준다.
-P -A옵션과 같이 사용하면 다른 파일 시스템과 루트 파일 시스템을 병렬 처리하여 점검한다.
그러나 루트 파일 시스템에 에러가 있을 경우 바이너리 파일이 깨질수 있으니 좋지 않다.
-s fsck 동작을 시리얼화 한다. 대화형 모드에서 여러 파일 시스템을 점검할 때 유용
-V 실행되는 각 파일 시스템용 명령을 포함하여 자세한 출력을 수행한다.
-t 점검할 파일 시스템을 설정한다. 파일 시스템 앞에 no를 붙이면 지정한
파일 시스템을 제외한 나머지를 모두 점검 한다.
-a 사용자에게 질문하지 않고 자동적으로 복구한다. 권장하지 않음
-r 파일 시스템 복구 전에 복구 여부를 묻는다. 단 병렬로 작동할때는 권장하지 않음
--v 버전정보를 보여준다.
mkfs
파티션한 하드디스크를 포맷할때 사용
새로운 파일 시스템을 생성
-t : 파일시스템의 형식을 지정한다.
-c : 파일시스템을 만들기 전에 불량 블록검사
ex) mkfs -t ext3 /dev/sdb1
fdisk
파티션 나눌때 사용하는 명령어
- s : 파티션 크기 출력
ex) fdisk -l /dev/sdb #dev/sdb 디스크정보 출력
fdisk /dev/sdb #fdisk 모드 진입
모드안에서 p 파티션 테이블 출력
모드안에서 n 새로운 파티션 추가 , 1~4 중 파티션 넘버 설정
모드안에서 wq 파티션 정보 저장
디스크 추가시 대략적인 명령어 순서
fdisk -> mkfs -> mount
파일시스템
운영체제가 파일을 시스템의 디스크 상에 구성하는 방식을 말한다.
시스템의 디스크 파티션 상에 파일들을 연속적이고 일정
한 규칙을 가지고 저장한다.
저널링 파일 시스템
백업 및 복구 능력이 있는 파일시스템 , 파일시스템의 변화에대한 흔적을 남기기때문에 복구능력 높
파일시스템 종류
RFS , XFS , JFS , SWAP , EFL , NFS ,ext3 ,ext4 ,ext2 ,ext ,iso9660 ,xiafs
fstab 파일 구조
fstab 파일은 다음과 같은 필드로 구성됩니다.
<file system> <mount point> <type> <options> <dump> <pass>
<file system> : 마운트할 파일 시스템의 디바이스 이름 또는 UUID. 예를 들어 /dev/sda1이나 UUID=12345678-9abc-def0-1234-567890abcdef와 같이 지정합니다.
<mount point> : 파일 시스템을 마운트할 디렉토리 경로를 지정합니다. 예를 들어 /mnt/data와 같이 지정합니다.
<type> : 마운트할 파일 시스템의 타입을 지정합니다. 예를 들어 ext4나 ntfs와 같이 지정합니다.
<options> : 마운트할 파일 시스템에 대한 옵션을 지정합니다. 여러 옵션은 쉼표(,)로 구분합니다. 예를 들어 rw,noatime,nodiratime과 같이 지정합니다.
<dump> : 파일 시스템의 백업 여부를 지정합니다. 보통 0으로 설정합니다.
<pass> : 파일 시스템이 부팅 시 자동으로 체크되어야 하는 순서를 지정합니다. 일반적으로 루트 파일 시스템은 1, 다른 파일 시스템은 2부터 순서를 지정합니다.