Skip to content

Disk quota

사용자 및 그룹별 용량 관리

Linux 디렉토리 공간 확보 및 R/W 제한 가이드

Linux에서 특정 디렉토리에 대량의 용량을 미리 확보한 후, 사용자로부터 해당 공간을 읽고 쓰지 못하게 하려면 몇 가지 방법을 사용할 수 있습니다.

아래는 주요 방법들입니다:

디렉토리를 특정 사용자/그룹에 대해 비활성화 (권한 설정)

디렉토리 생성 및 용량 확보:

mkdir /path/to/directory
fallocate -l 10G /path/to/directory/dummy_file
  • 위 명령은 dummy_file이라는 이름으로 10GB의 공간을 미리 확보합니다.

디렉토리 권한 설정:

chmod 000 /path/to/directory
  • chmod 000은 해당 디렉토리에 대해 모든 사용자의 읽기, 쓰기, 실행 권한을 제거합니다.

특정 사용자만 액세스 허용 (선택 사항):

chown root:root /path/to/directory
chmod 700 /path/to/directory
  • 루트 사용자만 액세스하도록 제한하려면 위와 같이 설정합니다.

파일 시스템 할당 후 마운트

가상 디스크 이미지 생성:

dd if=/dev/zero of=/path/to/disk.img bs=1G count=10
  • disk.img 파일로 10GB의 가상 디스크를 생성합니다.

파일 시스템 생성:

mkfs.ext4 /path/to/disk.img

파일 마운트 및 권한 제한:

mkdir /mnt/secured_dir
mount /path/to/disk.img /mnt/secured_dir
chmod 000 /mnt/secured_dir
  • 이제 /mnt/secured_dir는 읽기, 쓰기가 불가능한 10GB 공간이 됩니다.

Quota 시스템을 이용한 디렉토리 용량 제한

사용자가 특정 디렉토리에 접근할 수 있지만, 쓰기 제한을 적용하려면 Quota 시스템을 설정할 수 있습니다.

파일 시스템 Quota 활성화:

/etc/fstab에 아래와 같이 설정을 추가:

/dev/sdX /mount/point ext4 defaults,usrquota,grpquota 0 1

Quota 설정:

mount -o remount /mount/point
quotacheck -cug /mount/point
quotaon /mount/point

특정 사용자에게 제한 적용

edquota -u username
  • 여기서 사용자별 용량 제한을 설정합니다.

루프백 장치를 사용하여 R/W 차단

파일 생성 및 루프백 장치 설정:

dd if=/dev/zero of=/path/to/loopback.img bs=1G count=10
losetup /dev/loop0 /path/to/loopback.img
mkfs.ext4 /dev/loop0

루프백 장치를 마운트 후 차단:

mkdir /mnt/loop_dir
mount /dev/loop0 /mnt/loop_dir
chmod 000 /mnt/loop_dir

사용자 정의 SELinux 정책 적용 (SELinux 활성화 시)

디렉토리 SELinux 컨텍스트 설정:

chcon -R -t unconfined_u:object_r:default_t:s0 /path/to/directory

사용자 액세스 차단:

semanage fcontext -a -t unconfined_u:object_r:default_t:s0 /path/to/directory
restorecon -R /path/to/directory

See also

Favorite site