[리눅스] 사용자 용량 파티션 5일차 -1
1. 사용자 관리에 대해 알아봅시다
linux에서 계정은 시스템을 사용할 수 있는 권한을 뜻합니다.
시스템에서 일정공간을 할당 받아 계정이 허락하는 권한을 행사할 수 있습니다.
$nl /etc/passwd
명령어를 입력하면 계정에 대한 종합 정보가 다음과 같이 number list로 나옵니다.
33 lsh98:x:1000:1000:lsh98:/home/lsh98:/bin/bash
자세한 내용은 다음과 같습니다.
lsh98 | x | 1000 | 1000 | lsh98 | /home/lsh98 | /bin/bash |
계정명 | 비밀번호 | Uid | Gid | 사용자정보 | 계정의 홈 디렉터리 | 로그인 쉘 |
1.1 사용자 관련 파일 관련 명령어
/etc/passwd | 계정에 대한 종합정보 |
/etc/group | group 정보 |
/etx/login.defs | 로그인 프로세스에 대한 기본값 |
/etc/default/useradd | 계정 생성에 대한 기본 설정 정보 |
/etc/shadow | 계정 설정시 적용되는 기본값 |
2. 사용자그룹
사용자를 추가하기 전에 사용자 그룹에 대하여 알아봅시다.
사용자 그룹 : 사람이 태어나면 가정이라는 일차적인 기본그룹이 생긴다. 계정을 추가하면 그 계정명과 같은 이름의 기본그룹이 생성된다. 하나만 설정가능하다.
포함 그룹 : 가정을 벗어나 학교나 회사 학원등은 포함그룹에 속한다. 따로 그룹을 생성한 후 그 그룹에 계정을 추가해준다. 중복해서 설정 가능하다.
2.1. 사용자 그룹 관련 명령어
groupadd ABC | ABC그룹을 생성 |
nl /etc/group | 생성된 그룹을 확인 |
nl /etc/gshadow | 그룹 쉐도우 파일 확인 |
groups a1 | a1 계정이 속한 그룹 확인 |
usermod -G ABC a1 | a1 계정의 그룹을 ABC로 변경 |
useradd -G ABC a1 | a1 계정을 생성할 때 ABC 그룹에 추가한다 |
groupdel ABC | ABC 그룹을 삭제한다 |
3. 사용자 추가해보기
먼저 root권한을 획득해 봅시다.
비밀번호를 요구할경우 입력합니다.
$sudo -i
쉘의 기호가 $ 에서 # 으로 변경됩니다.
3.1. useradd로 추가하기
이제 사용자를 추가해 봅시다
useradd 명령어로 사용자를 추가할 수 있습니다.
하지만 이 경우 계정은 생성되지만 계정의 디렉터리가 생성되지 않기때문에 따로 추가해 주어야합니다.
사용자 디렉터리의 경우 /home아래에 생성합니다.
1. 사용자 이름 설정, 디렉터리 생성
2. 계정 비밀번호 설정
3. 기본 로그인 쉘 변경
4. 계정정보 확인
순서로 진행합니다.
$useradd -m -d /home/a1 a1 # 사용자이름을 a1으로 설정하고 /home/a1에 디렉터리를 생성
$passwd a1 # a1 사용자의 비밀번호 설정
$usermod -s /bin/bash a1 # 기본 로그인 쉘을 bash쉘로 변경
$finger a1 # a1 사용자의 정보 확인,
# 명령어가 실행되지 않으면 apt로 설치
$chfn a1 # a1 사용자의 정보 변경
2.2. adduser로 추가하기
adduser는 useradd의 확장된 개념으로 계정 생성을 위한 입력값을 일일이 넣어야했던 useradd와 달리 한번에 추가할 수 있습니다.
4. 사용자 용량 제한
quota는 파일 시스템을 통해 파일의 사용량을 추적하고, 미리 설정된 사용량 제한을 초과하는 경우 해당 사용자 또는 그룹에 경고 메시지를 보내고 쓰기 권한을 제한 한다.
이를 통해 파일 시스템의 과다 사용을 방지하고, 사용량이 넘침으로 인한 시스템 장애를 예방할 수 있다.
root 계정에서 사용자 용량 제한을 해보자
명령어를 실행하면서 quota와 mount가 없으면 패키지 관리자로 설치하자
$vi /etcfstab
16 /dev/disk/by-uuid/35a836~ /home ext4 defaults,usrquota 0 1 #,usrquota 부분을 추가한다.
$mount -o remount /home # quota설정이 반영될 수 있게 /home부분을 다시 마운트 한다.
$quotaoff -avug # quota 프로그램종료
$quotacheck -avugm # quota db 업데이트
$repqutoa -a # quota 설정 보기
*** Report for user quotas on device /dev/sda4
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20 0 0 2 0 0
lsh98 -- 28 0 0 10 0 0
a1 -- 16 0 0 4 0 0
$quotaon -avug # quota 프로그램 실행
$edquota -t
Soft limit는 한 파티션에서 사용자가 쓸 수 있는 최대 용량을 가리킨다. 그러나 유예 기간(grace period) 내에 있어서는 사용자는 사용 용량 초과에 대해서 경고를 받게 되는 경계선처럼 동작한다.
Hard limit는 유예 기간(grace period)이 설정되어 있을 때에만 동작한다. 이것은 디스크 사용에 있어서 절대적인 제한을 의미한다. 즉, 사용자는 hard limit 이상의 디스크 공간을 사용할 수 없다.
$ fallocate -l 1G k
fallocate: fallocate failed: Disk quota exceeded