Ulimit'te sert ve yumuşak sınırlar arasındaki fark nedir?
Açık dosya sayısı için 1024 soft limitine ve 10240 hard limitine sahibim. 1024'ten fazla dosya açan programları çalıştırmak mümkündür. Yumuşak limit ne için?
Ulimit'te sert ve yumuşak sınırlar arasındaki fark nedir?
Açık dosya sayısı için 1024 soft limitine ve 10240 hard limitine sahibim. 1024'ten fazla dosya açan programları çalıştırmak mümkündür. Yumuşak limit ne için?
Yanıtlar:
Sert bir sınır yalnızca kök tarafından yükseltilebilir (herhangi bir işlem onu düşürebilir). Bu nedenle güvenlik açısından kullanışlıdır: kök dışı bir işlem zor bir sınırı geçemez. Ancak, root dışı bir sürecin çocuklarından daha düşük bir limite sahip olamaması sakıncalıdır.
İşlem tarafından herhangi bir zamanda yumuşak bir sınır değiştirilebilir. Bu yüzden, süreçler işbirliği içinde olduğu sürece uygundur, ancak güvenlik açısından iyi değildir.
Yumuşak sınırlar için tipik bir kullanım örneği ulimit -Sc 0
, hata ayıkladığınız belirli bir işlem için bunları etkinleştirme seçeneğini korurken çekirdek dökümlerini ( ) devre dışı bırakmaktır ( (ulimit -Sc unlimited; myprocess)
).
ulimit
Kabuk komut etrafında sarıcı setrlimit
sistem çağrısı, bu yüzden kesin dokümanları bulabilirsiniz yer zaten.
Bazı sistemlerin tüm sınırları uygulamayabileceğini unutmayın. Spesifik olarak, bazı sistemler dosya tanımlayıcılarındaki işlem başına limitleri desteklemez (Linux yapar); sizinki değilse, shell komutu no-op olabilir.
ulimit -m
, RLIMIT_RSS
), artık Linux üzerinde geçerli olmayan bir sınırlamaya bir örnektir. Sanal hafıza sınırı ( ulimit -v
, RLIMIT_AS
) yine de çalışıyor.
setrlimit
(elbette, kök olarak çalıştırılmadıkça, sabit sınırın izin verdiği ölçüde). Programların çoğunda kullanıcının bunu yapmasına izin veren bir komut yoktur, ancak programa bir hata ayıklayıcıyla iliştirmeyi ve bir setrlimit
arama yapmasını deneyebilirsiniz , ya da Linux altında arayabilir prlimit
(bunun için herhangi bir kabuk bilmiyorum) Yarar).
prlimit
kabuk aracı var.
Zor sınır güvenlik amaçlıdır. Kök olmayan bir kullanıcı için, sabit sınırı yalnızca o anda ayarlanan sabit sınırdan düşürebilir; Onu artıramaz. Sert sınırın arttırılması sadece kök kullanıcı tarafından yapılabilir (ya da bundan emin değilsiniz. Kök olmayan bir kullanıcının yapabileceği, süreçleri için [0, zor limit] aralığında olabilecek bir limit (yumuşak limit adı verilen) seçmektir. Süreçlerde görülen ve dikkate alınan yumuşak limit.
ulimit -n
mı konuşuyorsun Çok düşük değerli bir kabuk çalıştırmayı deneyin (bash -c 'ulimit -n 4; exec 3>a; exec 4>b; exec 5>c'
). Çıktı nedir?