Impossibile passare da ssh a un utente specifico: su: impossibile impostare l'ID utente: risorsa temporaneamente non disponibile?


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

Immagino che ciò sia causato dal limite per utente, ma non c'è differenza nel confronto con un altro utente.

Ecco ulimit -nper 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 questo per 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

il numero di processi eseguiti da adtech:

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

Qualcos'altro da controllare?


AGGIORNAMENTO sab 21 lug 09:21:26 ICT 2012:

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

Come ho detto nel commento qui sotto, il mio collega aveva scoperto il processo che forse il colpevole:

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

Uccidendo questo processo il problema scompare ma non sappiamo ancora quale limite sia stato superato.


AGGIORNAMENTO sab 15 dic 00:56:13 ICT 2012:

La risposta di @ favadi è giusta, ma aggiorno qui nel caso qualcuno google sia questo thread.

Il file di registro diceva che:

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)

Ci scusiamo se questo è troppo ovvio, ma c'è un ID utente 500 sul tuo sistema? Si riferisce a un nome utente che sarebbe in uso? In bocca al lupo.
shellter

Certo, l' adtechutente ha UID 500. Vedi il mio aggiornamento. Il mio collega aveva scoperto il processo che è colpevole. Uccidendo questo processo il problema scompare, ma non sappiamo ancora quale limite sia stato superato: i file aperti no, il numero di processi no, forse la memoria o altro. qualche idea?
quanta,

Prova ad associare strace -f -p a quel processo e cerca le syscalls ovviamente in errore e ciò che stanno cercando di fare ...
Rackandboneman,

Risposte:


12

Potrebbe essere che max user processes (-u) 1024sia troppo basso.

Ricorda che processi e thread contano insieme. Puoi usare ps -eLF | grep adtech | wc -lper mostrare il tuo valore attuale.


7
Più precisamente, dovrebbe essere ps -eLF -U adtech | wc -l.
quanta

2
Se ti stai chiedendo dove è impostato, guarda in /etc/security/limits.d/90-nproc.conf (supponendo che tu sia su un sistema RH).
mricon,

@mricon verifica i /etc/security/limits.d/90-nproc.confritorni /etc/security/limits.d/90-nproc.conf: No such file or directorysu CentOS7
030

@Utrecht, avresti potuto fare una "ls" in /etc/security/limits.d/ e notare che su EL-7 si chiama "20-nproc.conf", che probabilmente sarebbe stato più veloce di chiederlo qui.
mricon,

2
@quanta, per essere più precisi, dovrebbe essere ps -LF -U adtech | wc -l. Quando si utilizza l' -eopzione si ottengono anche i processi di altri utenti.
Lambert,

2

Cerca nel registro jvm le prove che sta colpendo i limiti delle risorse. Le dimensioni dello stack potrebbero essere il problema, a seconda del numero di thread java in esecuzione nel processo interrotto.

La ricerca nel messaggio di errore trova segnalazioni di bug per pam_keyinit: verifica con il repository del tuo fornitore se è disponibile una versione aggiornata.


+1. Ho dimenticato la lezione: dai un'occhiata al registro quando ottieni il problema. Aggiornato la mia domanda.
quanta

0

L'errore è stato segnalato da pam_keyinit. Dato che non ho familiarità con questo modulo, ho cercato documentazione e ho trovato questa pagina di manuale . Sulla base della descrizione, mi chiedo se forse il processo che hai ucciso ha impedito l'accesso necessario ad alcuni file che pam_keyinit deve modificare? Spero che questo ti dia una direzione.


0

Questo problema può verificarsi se viene raggiunto il limite di esecuzione del processo dell'utente. Il limite del processo può essere aumentato modificando: /etc/security/limits.conffile con un utente con permesso di root. La voce da verificare sarà simile a:

*          hard     nproc         100

Non è necessario riavviare alcun servizio.


1
Nel mio caso l'innalzamento del limite massimo non ha avuto effetto immediato; Ho dovuto cambiare quello morbido.
Nicola Musatti,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.