Não é possível alternar, ssh para usuário específico: su: não é possível definir o ID do usuário: recurso temporariamente indisponível?

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

Eu acho que isso é causado pelo limite por usuário, mas não há diferenças ao comparar com outro usuário.

Aqui estão 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

e 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

o número de processos em execução por adtech:

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

Alguma outra coisa para verificar?


ATUALIZAÇÃO Sáb 21 de julho 09:21:26 TIC 2012:

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

Como eu disse no comentário abaixo, meu colega de trabalho descobriu o processo que talvez seja o culpado:

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

Ao eliminar esse processo, o problema desaparece, mas ainda não sabemos qual limite foi excedido.


ATUALIZAÇÃO Sáb 15 de dezembro 00:56:13 TIC 2012:

A resposta do @ favadi está certa, mas eu atualizo aqui caso alguém pesquise no google.

O arquivo de log dizia 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
fonte
Desculpas se isso for óbvio demais, mas existe um userID 500 no seu sistema? Está relacionado a um nome de usuário que estaria usando? Boa sorte.
shellter
Claro, o adtechusuário tem UID 500. Veja meu atualizado. Meu colega de trabalho havia descoberto o processo que é o culpado. Ao eliminar esse processo, o problema desaparece, mas ainda não sabemos qual limite foi excedido: arquivos abertos não, número de processos não, talvez memória ou qualquer outra coisa. Alguma ideia?
Quanta 21/07
Tente ligar strace -f -p para esse processo e procurando syscalls obviamente falhando eo que eles estão tentando fazer ...
rackandboneman

Respostas:

12

É possível que o valor max user processes (-u) 1024esteja muito baixo.

Lembre-se de que processos e threads estão contando juntos. Você pode usar ps -eLF | grep adtech | wc -lpara mostrar seu valor atual.

favadi
fonte
7
Mais precisamente, deveria ser ps -eLF -U adtech | wc -l.
Quanta 14/12
2
Se você está se perguntando onde isso está definido, consulte /etc/security/limits.d/90-nproc.conf (assumindo que você esteja em um sistema RH).
Mrcon
@mricon verificando /etc/security/limits.d/90-nproc.confretornos /etc/security/limits.d/90-nproc.conf: No such file or directoryno CentOS7
030
@ Utrecht bem, você poderia ter feito um "ls" em /etc/security/limits.d/ e notado que no EL-7 é chamado "20-nproc.conf", o que provavelmente teria sido mais rápido do que solicitado aqui.
mricon
2
@quanta, para ser mais preciso, deveria ser ps -LF -U adtech | wc -l. Ao usar a -eopção, você também obtém outros processos de usuários.
Lambert
2

Procure no log da jvm evidências de que ele está atingindo os limites de recursos. O tamanho da pilha pode ser o problema, dependendo de quantos encadeamentos java o processo morto estava em execução.

A pesquisa na mensagem de erro encontra relatórios de erros para pam_keyinit: verifique com o repositório do seu fornecedor se há uma versão atualizada disponível.

ramruma
fonte
+1. Esqueci a lição: dê uma olhada no log ao obter o problema. Atualizei minha pergunta.
Quanta 14/12
0

O erro foi relatado por pam_keyinit. Como não estou familiarizado com este módulo, procurei documentação e encontrei esta página de manual . Com base na descrição, pergunto-me se talvez o processo que você matou tenha impedido o acesso necessário a alguns arquivos que o pam_keyinit precisa modificar. Espero que isso lhe dê alguma direção.

dsh
fonte
0

Esse problema pode ocorrer se o limite de execução do processo do usuário for atingido. O limite do processo pode ser aumentado editando: /etc/security/limits.conffile com um usuário com permissão root. A entrada para verificar será semelhante a:

*          hard     nproc         100

Não há necessidade de reiniciar nenhum serviço.

Santhosh Kamath
fonte
1
No meu caso, aumentar o limite rígido não teve efeito imediato; Eu tive que mudar o suave.
Nicola Musatti