Aller au contenu principal

65. Configure User Resource Limits


개요

여러 사용자가 Linux 시스템에 접근할 때 리소스 제한 관리가 필수적입니다. /etc/security/limits.conf 파일을 사용하여 어떤 사용자도 시스템 리소스를 독점할 수 없도록 설정합니다.

제한 설정 파일 이해

/etc/security/limits.conf 파일 구조:

$ sudo vim /etc/security/limits.conf
#<domain> <type> <item> <value>
#@student hard nproc 20
#@faculty soft nproc 20
trinity hard nproc 10
@developers soft nproc 20
* soft cpu 5

각 항목은 4개의 필드로 구성됩니다:

필드설명
Domain사용자 또는 그룹 지정
Typesoft, hard, 또는 둘 다 (-)
Item제한할 리소스
Value리소스의 최대 허용 값

Domain 필드

  • 사용자명: 예: trinity
  • 그룹명: @ 접두사 (예: @developers)
  • *: 명시되지 않은 모든 사용자의 기본 제한

사용자별 제한이 전역(*) 항목보다 우선합니다.

제한 타입 설명

  • Hard Limit: 초과할 수 없는 절대 최대값
  • Soft Limit: 로그인 시 적용되는 초기 임계값. 사용자는 hard limit까지 임시로 올릴 수 있음
  • 결합 제한(-): soft와 hard 카테고리 모두에 동일한 제한 적용

일반적인 리소스 항목

항목설명
nproc최대 동시 프로세스 수
fsize최대 파일 크기 (KB)
cpuCPU 시간 제한 (분)

전체 옵션 목록:

$ man limits.conf

사용자별 제한 설정 예시

trinity에게 최대 3개의 동시 프로세스 제한:

trinity    -    nproc    3

변경 후 trinity로 로그인:

$ sudo -iu trinity

4번째 프로세스를 생성하려고 하면 오류 발생:

bash: fork: retry: Resource temporarily unavailable.

로그아웃:

$ logout

현재 리소스 제한 확인 및 조정

현재 리소스 제한 확인:

$ ulimit -a

예시 출력:

core file size         (blocks, -c)          0
max user processes (-u) 14722

프로세스 수 제한 (예: 5000개):

$ ulimit -u 5000
기본적으로 사용자는 자신의 제한만 낮출 수 있습니다. soft 제한은 세션당 한 번만 hard 제한까지 올릴 수 있습니다.