Không thể chuyển đổi, ssh thành người dùng cụ thể: su: không thể đặt id người dùng: Tài nguyên tạm thời không khả dụng?


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

Tôi đoán điều này là do giới hạn của mỗi người dùng, nhưng không có gì khác biệt khi so sánh với người dùng khác.

Đây là ulimit -ncho 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

và cái này cho 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

số lượng các quy trình đang chạy bởi adtech:

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

Bất cứ điều gì khác để kiểm tra?


CẬP NHẬT Thứ bảy ngày 21 tháng 7 09:21:26 CNTT 2012:

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

Như tôi đã nói trong phần bình luận dưới đây, đồng nghiệp của tôi đã tìm ra quy trình có thể là thủ phạm:

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

Khi giết quá trình này, vấn đề sẽ biến mất nhưng chúng ta vẫn không biết giới hạn nào đã vượt quá.


CẬP NHẬT Thứ bảy ngày 15 tháng 12 00:56:13 CNTT 2012:

Câu trả lời của @ favadi là đúng, nhưng tôi cập nhật ở đây trong trường hợp ai đó google chủ đề này.

Tệp nhật ký cho biết:

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)

Xin lỗi nếu điều này quá rõ ràng, nhưng có userID 500 trên hệ thống của bạn không? Nó có liên quan đến tên người dùng sẽ sử dụng không? Chúc may mắn.
shellter

Chắc chắn, adtechngười dùng có UID 500. Xem cập nhật của tôi. Đồng nghiệp của tôi đã tìm ra quá trình đó là thủ phạm. Khi giết quá trình này, vấn đề sẽ biến mất nhưng chúng tôi vẫn không biết giới hạn nào đã vượt quá: các tệp mở không, số lượng quá trình không, có thể là bộ nhớ hoặc bất cứ thứ gì khác. Có suy nghĩ gì không?
lượng tử

Hãy thử gắn strace -f -p vào quá trình đó và tìm kiếm các
tòa nhà

Câu trả lời:


12

Nó có thể max user processes (-u) 1024là quá thấp.

Hãy nhớ rằng các quy trình và chủ đề đang đếm cùng nhau. Bạn có thể sử dụng ps -eLF | grep adtech | wc -lđể hiển thị giá trị hiện tại của bạn.


7
Chính xác hơn, nó nên được ps -eLF -U adtech | wc -l.
lượng tử

2
Nếu bạn đang tự hỏi nơi đó được đặt, hãy tìm trong /etc/security/limits.d/90-nproc.conf (giả sử bạn đang sử dụng hệ thống RH).
mricon

@mricon kiểm tra /etc/security/limits.d/90-nproc.conftrả lại /etc/security/limits.d/90-nproc.conf: No such file or directorytrên CentOS7
030

@Utrecht tốt, bạn có thể đã thực hiện "ls" trong /etc/security/limits.d/ và nhận thấy rằng trên EL-7, nó được gọi là "20-nproc.conf", có lẽ sẽ nhanh hơn yêu cầu ở đây.
mricon

2
@quanta, để chính xác hơn, nó nên được ps -LF -U adtech | wc -l. Khi sử dụng -etùy chọn, bạn cũng có được các quy trình người dùng khác.
Lambert

2

Nhìn vào nhật ký jvm để biết bằng chứng nó đang đạt giới hạn tài nguyên. Kích thước ngăn xếp có thể là vấn đề, tùy thuộc vào số lượng luồng xử lý java đang chạy.

Tìm kiếm trên thông báo lỗi của bạn tìm thấy các báo cáo lỗi cho pam_keyinit: kiểm tra với kho lưu trữ của nhà cung cấp của bạn xem có phiên bản cập nhật không.


+1. Tôi quên bài học: hãy xem nhật ký khi gặp vấn đề. Cập nhật câu hỏi của tôi.
lượng tử

0

Các lỗi đã được báo cáo bởi pam_keyinit. Kể từ khi tôi không quen thuộc với mô-đun này, tôi đã tìm kiếm cho các tài liệu và các mặt hàng này manpage . Dựa trên mô tả, tôi tự hỏi liệu có lẽ quá trình mà bạn đã giết đã ngăn chặn quyền truy cập cần thiết vào một số tệp mà pam_keyinit cần sửa đổi? Hy vọng điều này cung cấp cho bạn một số hướng.


0

Vấn đề này có thể xảy ra nếu đạt đến giới hạn quy trình chạy của người dùng. Giới hạn quy trình có thể được tăng lên bằng cách chỉnh sửa: /etc/security/limits.conftệp có người dùng có quyền root. Mục để kiểm tra sẽ tương tự như:

*          hard     nproc         100

Không cần phải khởi động lại bất kỳ dịch vụ.


1
Trong trường hợp của tôi, việc tăng giới hạn cứng không có tác dụng ngay lập tức; Tôi đã phải thay đổi một trong những mềm mại.
Nicola Musatti
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.