디렉토리의 파일 수를 제한하는 방법은 무엇입니까?

디렉토리의 파일 수를 제한하는 방법은 무엇입니까?

특정 디렉토리의 파일 수(크기는 아님)를 제한할 수 있습니까?

내 디렉터리에는 최대 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가상(루프백) 장치가 도움이 될 수 있습니다.

관련 정보