Неможливо перейти, ssh до конкретного користувача: su: не можна встановити ідентифікатор користувача: ресурс тимчасово недоступний?


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

Будь-яке інше, щоб перевірити?


ОНОВЛЕННЯ Сб 21 липня 09:21:26 ІКТ 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

Вбивство цього процесу проблема відходить, але ми досі не знаємо, яка межа була перевищена.


ОНОВЛЕННЯ Суб 15 грудня 00:56:13 ICT 2012:

Відповідь @ favadi правильна, але я поновлюю тут на випадок, якщо хтось google має цю тему.

У файлі журналу сказано, що:

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)

Вибачте, якщо це занадто очевидно, але чи є у вашій системі UserID 500? Чи стосується це ім'я користувача, яке буде використовуватися? Удачі.
обстріл

Звичайно, 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 перевіряє /etc/security/limits.d/90-nproc.confприбутки /etc/security/limits.d/90-nproc.conf: No such file or directoryв CentOS7
030

@Utrecht добре, ви могли зробити "ls" в /etc/security/limits.d/ і помітили, що в EL-7 це називається "20-nproc.conf", що, мабуть, було б швидше, ніж запитати його тут.
мрікон

2
@quanta, якщо бути точнішим, воно повинно бути ps -LF -U adtech | wc -l. Під час використання -eопції ви також отримуєте процеси інших користувачів.
Ламберт

2

Подивіться в журнал jvm, щоб довести, що він впливає на обмеження ресурсів. Розмір стека може бути проблемою, залежно від того, скільки явських ниток виконується вбитий процес.

Пошук у вашому повідомленні про помилку знаходить звіти про помилки пам_keyinit: перевірте у сховищі свого постачальника, чи доступна оновлена ​​версія.


+1. Я забув урок: подивіться журнал, коли отримаєте проблему. Оновлено моє запитання.
кванта

0

Про помилку повідомив о pam_keyinit. Отже як я не знайомий з цим модулем, я шукав документацію і знайшов довідкову сторінку . Виходячи з опису, мені цікаво, чи можливо процес, який ви вбили, перешкодив необхідному доступу до деяких файлів, які пам_keyinit потребує зміни? Сподіваємось, це дає певний напрямок.


0

Ця проблема може статися, якщо буде досягнуто обмеження запуску процесу для користувача. Обмеження процесу можна збільшити, редагуючи: /etc/security/limits.confфайл з користувачем, що має дозвіл root. Запис для перевірки буде схожим на:

*          hard     nproc         100

Не потрібно перезапускати будь-які служби.


1
У моєму випадку підвищення жорсткої межі не мало негайного ефекту; Мені довелося поміняти м’яке.
Нікола Мусатті
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.