이것이 리눅스다(24) - 사용자별 공간할당(쿼터 개념과 실습)

1 minute read

사용자별 공간할당

리눅스는 사용자가 여러명이 같이 사용하는 개념인데, 사용자가 너무 많은 용량을 사용한다면 문제가 발생할 것이다. 그래서 파일시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량 및 개수를 제한하는 것이 쿼터를 사용한다. 쿼터는 파일시스템을 “/”로 지정하는 것보다는, 별도의 파일시스템을 지정해서 해당 부분을 쓰도록 하는 것이 좋다. 한 번 설정하면 계속 사용하는 것이기 때문에 굳이 명령어를 외울 필요는 없고, 전체적인 흐름만 파악해두면 된다.

실습

하드 디스크를 server에 10GB 정도 새로 추가한다. 나머지 하드디스크 할당 방법은 이전과 동일하다. fdisk /dev/sdb -> mkfs.ext4 /dev/sdb1 -> mkdir /userHome -> mount /dev/sdb1 /userHome -> vi /etc/fstab의 진행과정대로 하면 된다.

/dev/sdb1 /userHome ext4 defaults 0 0

그리고 만약 john이라는 사용자를 추가하고 싶다면 useradd -d /userHome/john john으로 유저를 추가해서 john을 sdb가 홈폴더가 되도록 한다. 이렇게 여러 명의 사용자를 생성할 수 있는데, 따로 만든 공간에서도 한 사용자가 용량을 혼자서 사용할 수 있기 때문에 이를 쿼터를 통해 방지해야 한다. 지금까지는 쿼터는 만들지 않고 일반 사용자만 만든 과정이다.

이는 /etc/fstab을 수정하면 된다. 기존의 추가 내용을 /dev/sdb1 /userHome ext4 defaults.usrjquota=aquota.user.jqmt=vfsv0 0 0로 수정해주면 된다. 그리고 이를 다시 mount --options remount /userHome을 통해 리마운트해주면 새로 마운트가 이루어진다.

그리고 이제 쿼터 DB를 생성해야 한다. 이 작업이 조금 복잡한데, 명령어를 외우려하지 않아도 된다. 우선 유저홈으로 이동하고 쿼터를 quotaoff -avug로 종료한다. quotacheck -augmn으로 체크를 하고, rm -rf aquota.*로 제거한 후 다시 quotacheck -augmn로 체크를 한다. touch aquota.user aquota.group으로 폴더를 만들고, 소유자만 접근할 수 있게 chmod 600 aquota.*로 권한을 설정한다. 다시 quotacheck -augmn로 체크를 한다. 그리고 다시 꺼놓았던 쿼터를 켜준다. quotaon -avug.

그리고 이제 각 사용자에게 쿼터를 설정해준다. edquota -u <사용자 이름>으로 vi를 열어 설정해준다. 중요한 변수로는 blocks, soft, hard가 있는데 blocks은 용량, soft는 경고 용량, hard는 최대 용량이다. 사용자의 용량 설정 내역을 다른 사용자에게도 똑같이 적용하고 싶다면 edquota -p <복사할 사용자 이름> <새로 지정할 사용자 이름>으로 동일하게 적용할 수 있다.

Leave a comment