Tidak dapat beralih, ssh ke pengguna tertentu: su: tidak dapat mengatur id pengguna: Sumber daya tidak tersedia untuk sementara?

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

Saya kira ini disebabkan oleh batas per pengguna, tetapi tidak ada perbedaan saat membandingkan dengan pengguna lain.

Ini ulimit -nuntuk 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

dan yang ini untuk 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

jumlah proses yang dijalankan oleh adtech:

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

Ada hal lain yang perlu diperiksa?


UPDATE Sab 21 Jul 09:21:26 ICT 2012:

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

Seperti yang saya katakan di komentar di bawah, rekan kerja saya telah menemukan proses yang mungkin penyebabnya:

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

Dengan mematikan proses ini masalahnya hilang tetapi kita masih tidak tahu batas mana yang terlampaui.


UPDATE Sab 15 Des 00:56:13 ICT 2012:

Jawaban @ favadi benar, tapi saya perbarui di sini kalau-kalau ada seseorang yang menggunakan utas ini.

File log mengatakan bahwa:

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)
kuanta
sumber
Maaf jika ini terlalu jelas, tetapi apakah ada userID 500 di sistem Anda? Apakah ini terkait dengan nama pengguna yang akan digunakan? Semoga berhasil.
kerang
Tentu, adtechpengguna memiliki UID 500. Lihat saya diperbarui. Rekan kerja saya telah menemukan proses yang merupakan biang keladinya. Dengan mematikan proses ini masalahnya hilang tetapi kita masih tidak tahu batas mana yang terlampaui: file yang terbuka tidak, jumlah proses yang tidak, mungkin memori atau apa pun. Adakah pikiran?
quanta
Coba lampirkan strace -f -p pada proses itu dan cari syscalls yang jelas gagal dan apa yang mereka coba lakukan ...
rackandboneman

Jawaban:

12

Bisa jadi itu max user processes (-u) 1024terlalu rendah.

Ingatlah bahwa proses dan utas sedang berhitung bersama. Anda dapat menggunakan ps -eLF | grep adtech | wc -luntuk menunjukkan nilai Anda saat ini.

favadi
sumber
7
Lebih tepatnya, seharusnya ps -eLF -U adtech | wc -l.
kuanta
2
Jika Anda bertanya-tanya di mana itu diatur, lihat di /etc/security/limits.d/90-nproc.conf (dengan asumsi Anda menggunakan sistem RH).
mricon
@mricon memeriksa /etc/security/limits.d/90-nproc.confpengembalian /etc/security/limits.d/90-nproc.conf: No such file or directorypada CentOS7
030
@Utrecht, Anda bisa melakukan "ls" di /etc/security/limits.d/ dan perhatikan bahwa pada EL-7 itu disebut "20-nproc.conf", yang mungkin lebih cepat daripada menanyakannya di sini.
mricon
2
@ Quanta, lebih tepatnya, seharusnya ps -LF -U adtech | wc -l. Saat menggunakan -eopsi Anda juga mendapatkan proses pengguna lain.
Lambert
2

Lihat di jvm log untuk bukti bahwa ia mencapai batas sumber daya Ukuran tumpukan mungkin menjadi masalah, bergantung pada berapa banyak java thread yang proses kill-nya berjalan.

Pencarian pada pesan kesalahan Anda menemukan laporan bug untuk pam_keyinit: tanyakan dengan repositori vendor Anda apakah versi yang diperbarui tersedia.

ramruma
sumber
+1. Saya lupa pelajaran: lihat log ketika mendapatkan masalah. Memperbarui pertanyaan saya.
kuanta
0

Kesalahan dilaporkan oleh pam_keyinit. Karena saya tidak terbiasa dengan modul ini, saya mencari dokumentasi dan menemukan halaman manual ini . Berdasarkan uraian, saya bertanya-tanya apakah mungkin proses yang Anda bunuh mencegah akses yang diperlukan ke beberapa file yang pam_keyinit perlu modifikasi? Semoga ini memberi Anda beberapa arah.

dsh
sumber
0

Masalah ini dapat terjadi jika proses-run-limit pengguna tercapai. Batas proses dapat ditingkatkan dengan mengedit: /etc/security/limits.conffile dengan pengguna yang memiliki izin root. Entri yang akan diperiksa akan serupa dengan:

*          hard     nproc         100

Tidak perlu memulai kembali layanan apa pun.

Santhosh Kamath
sumber
1
Dalam kasus saya menaikkan batas keras tidak memiliki efek langsung; Saya harus mengganti yang lunak.
Nicola Musatti