ウェブサイト検索

Linux でプロセスを実行するユーザーの制限を設定する方法


Linux の利点の 1 つは、Linux に関するほとんどすべてを制御できることです。これにより、システム管理者はシステムを適切に制御し、システム リソースをより効果的に利用できるようになります。

これを行うことを考えたこともなかった人もいるかもしれませんが、Linux では、1 人のユーザーが使用できるリソースの量と使用期間を制限できることを知っておくことが重要です。

こちらもお読みください: Linux で開いているファイルの数の制限を増やす方法

この短いトピックでは、ユーザーが開始するプロセスの数を制限する方法と、現在の制限を確認して変更する方法を説明します。

先に進む前に、次の 2 つの点を指摘しておく必要があります。

  1. ユーザー制限を変更するには、システムへの root アクセスが必要です
  2. これらの制限を変更する予定がある場合は、細心の注意を払う必要があります。

ユーザー制限を設定するには、次のファイルを編集する必要があります。


/etc/security/limits.conf

このファイルは、pam_module によって作成された ulimit を適用するために使用されます。

ファイルの構文は次のとおりです。

<domain> <type> <item> <value>

ここで、各オプションについて説明します。

  • ドメイン – これにはユーザー名、グループ、GUID 範囲などが含まれます。
  • タイプ – ソフト制限とハード制限
  • アイテム – 制限されるアイテム – コア サイズ、ファイル サイズ、nproc など
  • – これは指定された制限の値です。

制限の適切なサンプルは次のとおりです。

@student          hard           nproc                20

上の行は、"student" グループに最大 20 プロセスというハード制限を設定します。

特定のプロセスの制限を確認したい場合は、次のように制限ファイルを「cat」 するだけです。


cat /proc/PID/limits

PID は実際のプロセス ID であり、ps コマンドを使用してプロセス ID を確認できます。さらに詳しい説明については、「実行中の Linux プロセスを検索し、ユーザー レベルごとのプロセス制限を設定する」という記事を参照してください。

ここに例を示します。


cat /proc/2497/limits
サンプル出力

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             32042                32042                processes 
Max open files            1024                 4096                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       32042                32042                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us   

すべての行はほとんど一目瞭然です。ただし、limits.conf ファイルに入力できる設定をさらに詳しく知りたい場合は、ここで提供されているマニュアルを参照してください。

ご質問やご意見がございましたら、お気軽に以下のコメント欄にご記入ください。