sudoは常にプロセス制限を/etc/security/limits.dの数に設定しますか?

sudoは常にプロセス制限を/etc/security/limits.dの数に設定しますか?

私は次のような行動を観察しました。

[ec2-user@ip-10-66-68-55 ~]$ uname -a
Linux ip-10-66-68-55 3.4.103-76.114.amzn1.x86_64 #1
SMP Fri Sep 12 00:57:39 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[ec2-user@ip-10-66-68-55 ~]$ ulimit -H -n; ulimit -S -n
1000
1000
[ec2-user@ip-10-66-68-55 ~]$ cat /etc/security/limits.d/80-nofile.conf
ec2-user hard nofile 123456
ec2-user soft nofile 123456
[ec2-user@ip-10-66-68-55 ~]$ bash -c 'ulimit -H -n; ulimit -S -n'
#I expect this limit to be 1000,  same as above. it is.
1000
1000
[ec2-user@ip-10-66-68-55 ~]$ sudo -u ec2-user bash -c 'ulimit -H -n; ulimit -S -n'
#I expected this limit to be 1000,  the same as if I had not called sudo -u ec2-user
#Instead, I get the one from limits.d/80-nofile.conf. 
123456 
123456

sudo のマニュアルページをすばやく検索すると、/etc/security/limits への直接参照は表示されません。

私は興味のあるデーモンが80-nofile.confで設定された制限内で実行されることを確認するためにこの動作に頼りたいのですが、これが信頼できるかどうかはわかりません。どこかに文書化されていますか?

どのタイプの設定ファイル/変数がこの動作に影響しますか? sudoが現在の制限を上書きしないように指示できますか?

ベストアンサー1

/etc/pam.d/sudoファイルの内部を調べて、pam_limits.soそのファイルまたは含まれている他のファイルが必要かどうかを確認する必要があります。

たとえば、/etc/pam.d/sudo私のシステムのファイルは次のようになります。

#%PAM-1.0

auth       required   pam_env.so readenv=1 user_readenv=0
auth       required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
@include common-auth
@include common-account
@include common-session-noninteractive

pam_limits.soこれで、次を使用して含まれている他のファイルを見つけることができます。@inlude範囲。

おすすめ記事