/etc/security/limits.confに関するメモ
ユーザごとのリソースを制限できるファイル、/etc/security/limits.confについてちょっとしたまとめ。
システム全体で利用可能なプロセス数とファイルディスクリプタ(オープンできるファイルの値)
の上限値は、カーネルパラメータで指定するが、ユーザごとの上限はカーネルパラメータでは
変更できない。この場合は/etc/security/limits.confに記述する。
※一時的な変更ならulimitコマンドでも可能。
/etc/security/limits.conf記述例
user01 soft nofile 1024
user01 hard nofile 12288
user01 soft noproc 4096
user01 hard noproc 4096
上の例ではnofileがファイルディスクリプタ、noprocが最大プロセス数を指している。
soft/hardの違いは、softが一般ユーザが変更できる上限値で、hardはrootが変更できる
上限値を意味する。ユーザ名を「*」とすればすべてのユーザに適用される。
「@グループ名」で、グループごとの指定も可能。設定したユーザでログインして
ulimit -aコマンドを実行すれば反映が確認できる。
ついでに他のリソース属性もメモしておく。
noproc 最大プロセス数
nofile オープンできる最大ファイル数
maxlogin 最大ログイン数
data 最大データサイズ
fsize 最大ファイルサイズ
as 最大メモリ空間サイズ
priority ユーザ実行の優先度
stack ユーザ実行の最大スタック
rss ユーザ実行プロセスのメモリサイズ
core コアファイルの最大値
ここで行う制御は、システムリソースが1ユーザーによって占有されないようにするためのもの、
と考えておくと分かりやすい。メモリを大量に消費しがちな、いわゆるJ2EE(WebLogic,JBoss等)
を利用するアプリケーションサーバでは特に意識する必要がある、かも。
なお、「sshではセキュリティ確保のため、ssh経由で接続したプロセスに対し、
そのユーザーが本来持っている権限以上の変更はできない」という問題があるそうだ。
↓ ↓ ↓
http://www.miraclelinux.com/technet/faq/data/00073.html