ulimit -n değişmiyor - değerler limitleri.conf'un etkisi yok


13

Bir ubuntu makinedeki tüm kullanıcılar için maksimum açık dosya tanımlayıcısını yükseltmeye çalışıyorum.

Bu soru bir şekilde bu sorunun bir devamıdır.

pam_limits.so gerekli olsa bile açık dosya tanımlayıcı limitleri.conf ayarı ulimit tarafından okunmuyor

haricinde sınırları gerekli "kök" girişleri ekledim

İşte girişler

*               soft    nofile           100000
*               hard    nofile           100000
root            soft    nofile           100000
root            hard    nofile           100000

İle ilgili satırlar pam_limits.so/etc/pam.d/ içindeki tüm ilgili dosyalarda yorum yapılmamış ve fs.file-max/etc/sysctl.conf dosyasında doğru ayarlanmış

Ancak hala görüyorum

abc@machine-2:/etc/pam.d$ ulimit -n
1024

yeniden başlattıktan sonra.

Sorun ne olabilir?

Benim varsayılan kabuk / bin / sh ve makinedeki benim kullanıcı bazı dağıtılmış kimlik doğrulama düzeni ile doğrulandığı için benim varsayılan kabuk değiştirmek için chsh kullanamazsınız.


strace -o loglimit su - abc ve bundan sonra egrep "(limit | open)" loglimit, belki pam yapılandırmanız yanlış
c4f4t0r

@ c4f4t0r, su seçeneği - sadece son argüman olduğunda yeni bir girişe neden olur. Bunu sadece biliyorum çünkü sadece o adam sayfasını okuyordum. Ayrıca, bir ayrıntı olarak, normal bir kullanıcı, bir intihar kökü ikili dosyasını yükleyemez.
etherfish

root olarak -o loglimit su - abc
c4f4t0r

spam için özür dilerim ama bu tür bir sorunum var unix.stackexchange.com/questions/200310/…
vladeli

Yanıtlar:


5

Benzer bir sorunum vardı, ancak sadece SSH girişlerinde. Yerel girişlere (konsol aracılığıyla) saygı duyuldu /etc/security/limits.conf.

Anlaşıldığı gibi, ayarladığınızda:

UsePrivilegeSeparation yes

içinde /etc/ssh/sshd_configdosyanın ardından çatallar hesabın env kurmak yetkisiz bir çocuğu sshd. Bu çocuk ayrıcalıksız olduğundan, pam_limits.so üst limitleri belirlemenin bir etkisi yoktu.

Ayarladığım anda

UsePrivilegeSeparation no

içinde /etc/ssh/sshd_configSSH servis ve geri dönmüş, ardından limits.conf dosya SSH giriş bilgileri olan saygı.


2
Benim durumumda sshd-config olarak değiştirdim UsePAM yes. (Beni sshd-config'e yönlendiren +1)
Randall Whitman

4

Ulimit'in bir / etc / profile veya ~ / .bashrc tarafından uygulandığından şüpheleniyorum. Sisteminizin karmaşık bir pam'a sahip olması, bir şeyin ters gitmediğini doğrularım.

Ayrıca, pet_limits (8) 'de belirtildiği gibi /etc/security/limits.d/ dosyasında hatalı bir dosyanın olmadığını doğrularım.

Ben oturumu gerekli pam_limits.conf satırına hata ayıklama parametresi eklemek ve sonra oturum açarken /var/log/auth.log izlemek istiyorum.

Yumuşak limitiniz 1024 ise, sabit limitiniz nedir?

su size -l argümanını kullanarak su ile yeni, yeni bir giriş yapmalıdır.

su -l -s / bin / bash

İyi şanslar.


benim zor sınırım 4096 yaniulimit -Hn
Nerrve

4

Redhat sunucusunda kök olarak günlüğe kaydedildi

/etc/security/limits.conf

user01  -       nofile  2048

root olarak kaydedilen strace komutu

strace -o loglimit su - user01

diğer kabuk açık loglimit ile

grep "limit" loglimit
open("/lib64/security/pam_limits.so", O_RDONLY) = 6
 ..........
 ..........
 open("/etc/security/limits.conf", O_RDONLY) = 3
 read(3, "# /etc/security/limits.conf\n#\n#E"..., 4096) = 1823
 open("/etc/security/limits.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
 setrlimit(RLIMIT_NOFILE, {rlim_cur=2*1024, rlim_max=2*1024}) = 0

Bu şekilde pam_limits'in yüklendiğini ve limit.conf'un okunduğunu biliyorum, pam_limits'iniz yüklendi, ancak hala ulimit -n kullanarak başka değerler görüyorsanız, @etherfish'in söylediği gibi kabuk profilinizi kontrol edin


3

Ben böyle bir sorun vardı, burada ne yaptım.

Strace komutu, işlemin harici kütüphanelerle yaptığı tüm etkileşimleri yazdırır, böylece onunla yapılandırmamızın yüklü olup olmadığını görebiliriz.

Yani, yukarıda önerildiği gibi yaparım:

root:/etc/pam.d$ strace -o ~/loglimit su - glaudiston
glaudiston:~$ exit
logout
root:/etc/pam.d$ cat ~/loglimit | grep limits.conf

Benim sorunumda, strace log (strace -o log su - username) herhangi bir limit metni örneği içermiyor, bu nedenle dosya limit.conf yüklenmedi.

Öncelikle pam_limits.so'nun /etc/security/limits.conf dosyasını aradığından emin olurum

root:/etc/pam.d$ strings /lib/security/pam_limits.so | grep limits.conf
/etc/security/limits.conf

Bu nedenle, pam_limits.so modülünün /etc/pam.d ... adresinde bulunan dosyalarda auth işleminde yüklendiğinden emin olun, örneğin /etc/pam.d/su içinde ekledim:

session   required    pam_limits.so

Şimdi, kullanıcıma bir "su" yapabilirim ve limitler yüklenecektir. Emin olmak için strace adımını tekrar yapabilirsiniz.

Benim linux bir LFS, bu yüzden benim hatam /etc/pam.d dosyalarında pam_limits.so eksikliği. Diğer dağıtımlarda tam olarak bu konu olduğunu sanmıyorum.

Ama umarım bu yardımcı olur.


1

Benim durumumda (Centos 6.10) olarak strace limiti ayarlanabilir sonra göstermiştir /etc/security/limits.conf giriş sürecinde daha sonra ondan reset oldu /etc/security/limits.d/90-nproc.conf bütün olmayanı -kök kullanıcılar:

*          soft    nproc     1024
root       soft    nproc     unlimited
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.