No se puede cambiar, ssh a un usuario específico: su: no se puede establecer la identificación del usuario: ¿El recurso no está disponible temporalmente?

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

Supongo que esto es causado por el límite por usuario, pero no hay diferencia cuando se compara con otro usuario.

Aquí están ulimit -npara 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

y este para 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

El número de procesos ejecutados por adtech:

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

¿Alguna otra cosa para verificar?


ACTUALIZACIÓN sáb 21 de julio 09:21:26 ICT 2012:

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

Como dije en el comentario a continuación, mi compañero de trabajo había descubierto el proceso, que quizás sea el culpable:

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

Al eliminar este proceso, el problema desaparece, pero aún no sabemos qué límite se superó.


ACTUALIZACIÓN sáb 15 dic 00:56:13 ICT 2012:

La respuesta de @ favadi es correcta, pero actualizo aquí en caso de que alguien busque en Google este hilo.

El archivo de registro decía que:

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)
quanta
fuente
Disculpas si esto es demasiado obvio, pero ¿hay un ID de usuario 500 en su sistema? ¿Se relaciona con un nombre de usuario que estaría usando? Buena suerte.
shellter
Claro, el adtechusuario tiene UID 500. Vea mi actualizado. Mi compañero de trabajo había descubierto el proceso que es el culpable. Al eliminar este proceso, el problema desaparece, pero aún no sabemos qué límite se superó: los archivos abiertos no, el número de procesos no, tal vez la memoria o cualquier otra cosa. ¿Alguna idea?
quanta
Intente adjuntar strace -f -p a ese proceso y busque syscalls obviamente fallidos y lo que están tratando de hacer ... ''
Rackandboneman

Respuestas:

12

Podría ser posible que max user processes (-u) 1024sea ​​demasiado bajo.

Recuerde que los procesos y los hilos están contando juntos. Puede usar ps -eLF | grep adtech | wc -lpara mostrar su valor actual.

favadi
fuente
77
Más precisamente, debería ser ps -eLF -U adtech | wc -l.
quanta
2
Si se pregunta dónde está configurado, busque en /etc/security/limits.d/90-nproc.conf (suponiendo que esté en un sistema RH).
mricon
@mricon verificando /etc/security/limits.d/90-nproc.confdevoluciones /etc/security/limits.d/90-nproc.conf: No such file or directoryen CentOS7
030
@Utrecht, bien, podrías haber hecho un "ls" en /etc/security/limits.d/ y notar que en EL-7 se llama "20-nproc.conf", que probablemente hubiera sido más rápido que preguntarlo aquí.
mricon
2
@quanta, para ser más precisos, debería serlo ps -LF -U adtech | wc -l. Al utilizar la -eopción, también obtiene procesos de otros usuarios.
Lambert
2

Busque en el registro jvm la evidencia de que está alcanzando los límites de recursos. El tamaño de la pila puede ser el problema, dependiendo de cuántos subprocesos de Java se esté ejecutando el proceso eliminado.

Al buscar en su mensaje de error se encuentran informes de errores para pam_keyinit: consulte con el repositorio de su proveedor si hay una versión actualizada disponible.

ramruma
fuente
+1. Olvidé la lección: mira el registro cuando obtengas el problema. Actualicé mi pregunta.
quanta
0

El error fue reportado por pam_keyinit. Como no estoy familiarizado con este módulo, busqué documentación y encontré esta página de manual . Según la descripción, me pregunto si quizás el proceso que eliminó impidió el acceso necesario a algunos archivos que pam_keyinit necesita modificar. Esperemos que esto te dé alguna dirección.

dsh
fuente
0

Este problema puede ocurrir si se alcanza el límite de ejecución del proceso del usuario. El límite del proceso se puede aumentar editando: /etc/security/limits.confarchivo con un usuario con permiso de root. La entrada a verificar será similar a:

*          hard     nproc         100

No es necesario reiniciar ningún servicio.

Santhosh Kamath
fuente
1
En mi caso, elevar el límite duro no tuvo un efecto inmediato; Tuve que cambiar el suave.
Nicola Musatti