sshを特定のユーザーに切り替えられません:su:ユーザーIDを設定できません:リソースは一時的に利用できませんか?


15

/var/log/secure

su: pam_keyinit(su-l:session): Unable to change UID to 500 temporarily
su: pam_keyinit(su-l:session): Unable to change UID to 500 temporarily
su: pam_unix(su-l:session): session opened for user adtech by root(uid=0)
su: pam_unix(su-l:session): session closed for user adtech

これはユーザーごとの制限が原因だと思いますが、別のユーザーと比較しても違いはありません。

ここulimit -nにありadtechます:

[adtech@hmaster87 root]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 192025
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 655360
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

そしてこれはquanta

[quanta@hmaster87 ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 192025
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 655360
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

によって実行されているプロセスの数adtech

[root@hmaster87 ~]# ps -U adtech | wc -l
25

他に確認することはありますか?


更新2012年7月21日09:21:26 ICT 2012:

# getent passwd adtech
adtech:x:500:502::/home/adtech:/bin/bash

以下のコメントで述べたように、私の同僚は犯人かもしれないプロセスを見つけました:

adtech 12901 1 0 08:58 ? 00:00:00 /home/adtech/nexus/bin/../bin/jsw/linux-x86-64/wrapper /home/adtech/nexus/bin/../bin/jsw/conf/wrapper.conf wrapper.syslog.ident=nexus wrapper.pidfile=/home/adtech/nexus/bin/../bin/jsw/linux-x86-64/nexus.pid wrapper.daemonize=TRUE

adtech 12903 12901 1 08:58 ? 00:00:24 java -Dsun.net.inetaddr.ttl=3600 -DbundleBasedir=. -Djava.io.tmpdir=./tmp -DjettyContext=nexus.properties -DjettyContextIncludeKeys=bundleBasedir -DjettyPlexusCompatibility=true -Djava.library.path=bin/jsw/lib -classpath bin/jsw/lib/wrapper-3.2.3.jar:./lib/plexus-classworlds-2.4.jar:./conf/ -Dwrapper.key=ejxHaBJASiFkAB8w -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=12901 -Dwrapper.version=3.2.3 -Dwrapper.native_library=wrapper -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=10 -Dwrapper.jvmid=1 org.codehaus.plexus.classworlds.launcher.Launcher ./conf/jetty.xml

このプロセスを終了することで問題はなくなりますが、どの制限を超えたかはまだわかりません。


更新2012年12月15日00:56:13 ICT 2012:

@ favadiの答えは正しいが、誰かがこのスレッドをグーグルで検索した場合に備えてここで更新する。

ログファイルには次のように書かれています。

jvm 1    | Server daemon died!
jvm 1    | java.lang.OutOfMemoryError: unable to create new native thread
jvm 1    |      at java.lang.Thread.start0(Native Method)
jvm 1    |      at java.lang.Thread.start(Thread.java:640)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperManager.privilegedStopInner(WrapperManager.java:3152)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperManager.handleSocket(WrapperManager.java:3797)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperManager.run(WrapperManager.java:4084)
jvm 1    |      at java.lang.Thread.run(Thread.java:662)

これがあまりにも明白な場合はおologiesびしますが、システムにuserID 500がありますか?使用するuserNameに関連していますか?幸運を。
シェルター

確かに、adtechユーザーはUID 500を持っています。更新されたものを参照してください。私の同僚は、犯人であるプロセスを見つけました。このプロセスを強制終了することで問題は解決しますが、どの制限を超えたかはまだわかりません。開いているファイルは制限されず、プロセスの数は制限されず、メモリなどが制限されます。何かご意見は?
量子

...彼らはやろうとしているもの、そのプロセスにstraceの-f -pを付けると、明らかに失敗のシステムコールを探して試してみてください
rackandboneman

回答:


12

max user processes (-u) 1024が低すぎる可能性があります。

プロセスとスレッドが一緒にカウントされることを忘れないでください。を使用ps -eLF | grep adtech | wc -lして、現在の値を表示できます。


7
より正確には、それがなければなりませんps -eLF -U adtech | wc -l
量子

2
どこに設定されているのか疑問に思っている場合は、/ etc / security / limits.d / 90-nproc.confを確認してください(RHシステムを使用している場合)。
mricon

チェック@mricon /etc/security/limits.d/90-nproc.conf戻り/etc/security/limits.d/90-nproc.conf: No such file or directoryCentOS7に
030を

@Utrechtよく、/ etc / security / limits.d /で「ls」を実行し、EL-7では「20-nproc.conf」と呼ばれることに気付いたかもしれません。
mricon

2
@quanta、より正確に言えば、それはする必要がありますps -LF -U adtech | wc -l。この-eオプションを使用すると、他のユーザーのプロセスも取得できます。
ランバート

2

リソース制限に達している証拠については、jvmログを参照してください。強制終了されたプロセスが実行していたJavaスレッドの数によっては、スタックサイズが問題になる場合があります。

エラーメッセージを検索すると、pam_keyinitのバグレポートが見つかります。更新されたバージョンが利用可能かどうかをベンダーのリポジトリで確認してください。


+1。レッスンを忘れました:問題が発生したときにログを見てください。私の質問を更新しました。
量子

0

エラーはによって報告されましたpam_keyinit。私はこのモジュールに詳しくないので、ドキュメントを検索してこのマンページを見つけました。説明に基づいて、おそらくあなたが殺したプロセスが、pam_keyinitが変更する必要があるいくつかのファイルへの必要なアクセスを妨げたのだろうか?うまくいけば、これが何らかの方向性を与えてくれます。


0

この問題は、ユーザーのプロセス実行制限に達した場合に発生する可能性があります。プロセスの制限は/etc/security/limits.conf、root権限を持つユーザーのファイルを編集することで増やすことができます。チェックするエントリは次のようになります。

*          hard     nproc         100

サービスを再起動する必要はありません。


1
私の場合、ハードリミットを引き上げてもすぐには効果がありませんでした。私は柔らかいものを変えなければなりませんでした。
ニコラムサッティ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.