이름으로 프로세스 수 제한

이름으로 프로세스 수 제한

프로세스 이름을 사용하여 특정 그룹이나 사용자의 프로세스 수를 제한할 수 있습니까? 예를 들어. 그룹에 가입하고 싶어요리모콘동시에 5개만SSH내 서버에서 실행 중인 프로세스입니다. 옵션이 표시되지 않습니다.pam_restrictions(프로세스 이름에 관계없이 사용자 또는 그룹당 프로세스 수만 제한할 수 있습니다.) 기능이 표시되지 않습니다.cgroup.

이것을 달성하는 방법에 대한 아이디어가 있습니까? (크론의 스크립트는 내 대답이 아닙니다 :))

답변1

이름으로 프로세스 수를 제한하는 방법은 모르지만 pam_limits를 통해 사용자 로그인 수를 제한하면 전반적인 목표를 달성할 수 있습니다.

/etc/security/limits다음 과 같은 항목

@remotes         hard    maxlogins       5

원격 그룹의 사용자는 시스템에서 5개 이상의 로그인 세션을 가질 수 없습니다. SSH 세션의 멀티플렉싱을 방지하기 위해 sshd_config에서 MaxSessions=1과 페어링할 수 있습니다.

또 다른 옵션은 시작되는 서비스 인스턴스를 제한할 수 있도록 서비스 관리자, init 시스템 또는 슈퍼서버에서 sshd 서비스를 실행하는 것입니다. edvinas.me에서 xinetd를 언급했습니다. xinetd에서 sshd를 실행하는 경우 완전히 테스트되지 않은 다음 xinetd 구성 조각은 총 SSH 인스턴스 수를 20으로 제한합니다.

service ssh
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        server          = /usr/sbin/sshd
        server_args     = -i
        per_source      = UNLIMITED
        instances       = 20
}

와 함께 systemd 소켓 장치를 사용하면 비슷한 효과를 얻을 수 있습니다 MaxConnections=20.

답변2

아니요. 프로세스 이름은 쉽게 변경할 수 있으므로 프로세스 이름으로 제한할 수 없습니다.

따라서 이 제한은 쉽게 피할 수 있습니다.

(런타임에도 바뀔 수 있다고 생각합니다.)

관련 정보