
私は次のような行動を観察しました。
[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範囲。
答え2
洞察力をいただいた@hrvに感謝します。クイック実験後、/etc/pam.d/sudoにpam_limits.soが含まれているときにsudoを実行すると実際に設定され、/etc/pam.d/sudoにpam_limits.soが含まれていない場合はsudoを実行しても設定されないことを確認しました。
いくつかの他のコンピュータをチェックしましたが、あるコンピュータには/etc/pam.d/sudoにpam_limits.soがあり、他のコンピュータにはありません。