Linux でプロセスを実行するユーザーの制限を設定する方法
Linux の利点の 1 つは、Linux に関するほとんどすべてを制御できることです。これにより、システム管理者はシステムを適切に制御し、システム リソースをより効果的に利用できるようになります。
これを行うことを考えたこともなかった人もいるかもしれませんが、Linux では、1 人のユーザーが使用できるリソースの量と使用期間を制限できることを知っておくことが重要です。
こちらもお読みください: Linux で開いているファイルの数の制限を増やす方法
この短いトピックでは、ユーザーが開始するプロセスの数を制限する方法と、現在の制限を確認して変更する方法を説明します。
先に進む前に、次の 2 つの点を指摘しておく必要があります。
- ユーザー制限を変更するには、システムへの root アクセスが必要です
- これらの制限を変更する予定がある場合は、細心の注意を払う必要があります。
ユーザー制限を設定するには、次のファイルを編集する必要があります。
/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 ファイルに入力できる設定をさらに詳しく知りたい場合は、ここで提供されているマニュアルを参照してください。
ご質問やご意見がございましたら、お気軽に以下のコメント欄にご記入ください。