Неможливо перейти, 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.