특정 디렉토리의 파일 수(크기는 아님)를 제한할 수 있습니까?
내 디렉터리에는 최대 5개의 파일만 포함될 수 있으며 cp file_6 mydir
허용되지 않습니다.
답변1
quota
더 이상 파일이 생성되지 않도록 inode 수를 사용하고 제한할 수 있습니다 . 이를 달성하는 가장 쉬운 방법(IMHO)은 디렉터리를 특정 그룹(예:)으로 설정하는 것입니다 quotagroup
.
단계별로 모든 작업은 다음을 수행 root
하거나 사용하여 수행됩니다 sudo
.
1. 설치 할당량
quota
모든 표준 리포지토리에 표시되어야 하며 기본 패키지 관리자를 사용하세요.
2. 할당량 옵션 탑재 및 추가
/etc/fstab
예를 들어 개별 그룹 할당량에 대한 마운트 옵션에서 그룹 할당량을 편집하고 추가합니다 home
( grpquota
섹션에 초점):
UUID=ab123-cd45-ef67 /home ext4 defaults,grpquota 0 1
실행 mount -a
하여 적용하거나 사용하세요.mount -o remount,grpquota /home
3. 할당량 활성화
quotacheck -cgv /home
-c
그룹 할당량에 대한 할당량 제어 파일()은 해당 장치의 마운트 지점 수준에서 다시 생성됩니다 aquota.group
. 벨보스-g
-v
quotaon -gv /home
할당량 확인을 활성화합니다. -gv
위와 같이.
4. 제한된 그룹 생성 및 디렉터리 설정 조정
addgroup quotagroup
chgrp quotagroup /home/dir/to/limit
chmod g+s /home/dir/to/limit
제한된 그룹을 생성하고 quotagroup
, 해당 디렉토리의 그룹 소유권을 으로 변경하고, quotagroup
디렉토리의 새 파일이 상위 그룹과 동일한 그룹 소유권을 갖도록 합니다( g+s
="set gid-bit").
5. 할당량 정의
edquota -g quotagroup /home
할당량 설정 편집을 허용합니다. 다음과 같습니다.
Disk quotas for group quotatest (gid 1003):
Filesystem blocks soft hard inodes soft hard
/dev/sda2 4 0 0 3 0 0
사용된 블록을 정의한 다음 블록에 대한 소프트 및 하드 할당량을 정의 하고 blocks
, inodes는 현재 사용된 inode와 제한을 표시합니다.
inode의 하드 제한을 6
디렉토리 자체의 경우 1로, 5개 파일의 경우 5로 설정합니다. 소프트 제한은 주어진 기간 동안 제한이 일시적으로 초과되도록 허용하는 데 사용됩니다. 현재 사용되는 값은 변경하면 안 됩니다!
6. 제한 사항, 질문, 의견
- 이러한 각 디렉터리에는 별도의 할당량 + 특수 그룹이 필요합니다.
root
할당량 제한이 적용되지 않습니다.- 할당량은 특정 디렉터리뿐만 아니라 전체 마운트 지점에 적용됩니다. 즉, 디렉터리에는 적용할 수 없습니다.
- 다시 말하지만, 제한된 디렉터리에 있든 없든
/home
그룹의 모든 파일은quotagroup
할당량에 포함됩니다. XFS
프로젝트 할당량, 즉 디렉터리의 프로젝트에 대한 할당량을 허용하는 파일 시스템입니다. 가능하다면 특히 이러한 많은 경우에 이 작업을 수행하는 것이 좋습니다.- 전체 장치 외에도
XFS
가상(루프백) 장치가 도움이 될 수 있습니다.