삽질가루2008/12/03 15:44

* /etc/pam.d/login 파일과 /lib/security/pam_limits.so 파일 존재유무를 먼저 확인하세요.

/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$


가루비누


저작자 표시 비영리 변경 금지
Posted by cheru