Невозможно переключиться, 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 ИКТ 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)

Извините, если это слишком очевидно, но есть ли в вашей системе идентификатор пользователя 500? Это относится к userName, который будет использовать? Удачи.
Оболочка

Конечно, adtechпользователь имеет UID 500. Смотрите мой обновленный. Мой коллега узнал, что является виновником. Убивая этот процесс, проблема исчезает, но мы до сих пор не знаем, какой лимит был превышен: открытых файлов нет, число процессов нет, может быть, память или что-то еще. Есть предположения?
Июнь

Попробуйте подключить strace -f -p к этому процессу и отыскивать явно
сбойные системные вызовы

Ответы:


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 directoryна CentOS7
030

@ Утрехт, вы могли бы сделать «ls» в /etc/security/limits.d/ и заметить, что на 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
В моем случае повышение жесткого лимита не имело немедленного эффекта; Я должен был изменить мягкий.
Никола Мусатти
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.