名前によるプロセス数の制限

名前によるプロセス数の制限

プロセス名を使用して特定のグループまたはユーザーのプロセス数を制限できますか?例えば。グループに参加したいリモコン同時に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

いいえ。プロセス名は簡単に変更できるため、プロセス名に制限することはできません。

したがって、この制限は簡単に回避できます。

(ランタイムにも変更できると思います。)

関連情報