/etc/pam.d/login 파일을 열어서 아래와 같이 삽입 합니다.
session required /lib/security/pam_limits.so
이후 사용자 세션이 열릴 때마다 세부 제한을 걸 수 있습니다.
세부 설정은 /etc/security/limits.conf 파일을 열어 입력하시면 됩니다.
이미 파일 내에 설정 방법에 대해 comment가 있습니다.
저는 학생들 실습 시 실수로 fork()를 무한으로 돌리는 경우를 막기 위해 다음과 같이 설정하였습니다.
사용자 그룹(group)은 그룹명 앞에 '@'를 붙입니다.
42 @sp2008_2 soft nproc 15
43 @sp2008_2 hard nproc 15
44 @cp2008_2 soft nproc 15
45 @cp2008_2 hard nproc 15
46 @sp2008_2 soft fsize 2048
47 @cp2008_2 soft fsize 2048
시스템프로그래밍 수업 학생들은 앞으로 15개 이상 사용자 프로세스를 생성하지 못하며, 실습계정에 큰 파일을 저장할 수 없습니다.
이런 식으로 사용하면 됩니다. 전국의 실습서버 관리자 여러분, 화이팅~! 술자리서 서버 죽었다고 문자 받으면 WTF 연발이죠.
만약에 nproc 제한 값을 3으로 주고 접속해보면 다음과 같이 오류가 납니다. shell 자체도 사용자 프로세스이기 때문에 적당한 값을 세팅해주어야 합니다. 이 값은 여러 세션에 대해서도 일괄 적용 됩니다.
login as: cherubino
cherubino@**************'s password:
-bash: fork: Resource temporarily unavailable
-bash-2.05b$
가루비누