Centos 7でTomcatサーバーを実行する際に問題があります。同様の設定で合計7つあります。 4つは最近パッチされて再起動され、残りの3つは約2年の稼働時間を持ちます。
私がするとき:
sudo -u tomcat ls /tmp
新しくパッチしたサーバーで、次のエラーが発生します。
sudo: pam_open_session: Permission denied
sudo: policy plugin failed session initialization
パッチが適用されていないサーバーでコマンドを実行できます。
/etc/security/limits
同じです:
tomcat soft nofile 5000000
tomcat hard nofile 5000000
tomcat soft nproc 5000000
tomcat hard nproc 5000000
このエラーをコメントアウトすることで回避できます。
/etc/pam.d/sudo:
session required pam_limits.so
私は理解できませんか?
私は正しい場所を探していますか?
両方のトレースは次のとおりです。
失敗する:
strace -e setrlimit sudo -u tomcat ls /tmp
setrlimit(RLIMIT_NPROC, {rlim_cur=RLIM64_INFINITY, rlim_max=RLIM64_INFINITY}) = 0
setrlimit(RLIMIT_NPROC, {rlim_cur=1031015, rlim_max=1031015}) = 0
setrlimit(RLIMIT_NPROC, {rlim_cur=5000000, rlim_max=5000000}) = 0
setrlimit(RLIMIT_NOFILE, {rlim_cur=5000000, rlim_max=5000000}) = -1 EPERM (Operation not permitted)
sudo: pam_open_session: Permission denied
sudo: policy plugin failed session initialization
+++ exited with 1 +++"
布材:
strace -e setrlimit sudo -u tomcat ls /tmp
setrlimit(RLIMIT_NPROC, {rlim_cur=5000000, rlim_max=5000000}) = 0
setrlimit(RLIMIT_NOFILE, {rlim_cur=5000000, rlim_max=5000000}) = -1 EPERM (Operation not permitted)
setrlimit(RLIMIT_NPROC, {rlim_cur=RLIM64_INFINITY, rlim_max=RLIM64_INFINITY}) = 0
hs_err_pid13726.log hsperfdata_cron hsperfdata_tokor hsperfdata_tomcat systemd-private-U8GAP7
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=28963, si_status=0, si_utime=0, si_stime=0} ---
+++ exited with 0 +++
pam
作業バージョンは次のとおりです pam-1.1.8-12.el7_1.1.x86_64
そして休業状態:pam-1.1.8-18.el7.x86_64
答え1
pam_limits
これは認証失敗を引き起こすモジュールのバグです。 RHEL / Centos 7にのみ影響を与えるようです。これは、無制限または非常に高いnofiles
設定(= 1024 x 1024 = 1024576より大きい)を持つfs.nr_open
sudoユーザーに影響します。
あなたのオプションは次のとおりです。
pam_limits
sudo PAMルールから削除- ターゲットユーザー(tomcat)を
nofiles
以下のように設定します。fs.nr_open
- ulimit 以上でカーネル設定
fs.nr_open
(in ) を増やします。/etc/sysctl.conf
- 修正を待っていますか?
答え2
これは、実行中のユーザーのパスワードが期限切れになった場合に発生する可能性があります。この場合、RHEL 7で同じエラーが発生しました。
答え3
/etc/security/limits.conf
存在しないと同じエラーが発生することがわかりました。空/etc/security/limits.conf
のファイルを作成するとpam_limits
エラーが消えます。