it-swarm-eu.dev

ulimit: rozdíl mezi tvrdými a měkkými limity

Jaký je rozdíl mezi tvrdými a měkkými limity v ulimitu?

Pro počet otevřených souborů mám měkký limit 1024 a pevný limit 10240. Je možné spouštět programy otevírající více než 1024 souborů. K čemu je měkký limit?

89
daniel kullmann

Tvrdý limit může být zvýšen pouze rootem (jakýkoli proces ho může snížit). Proto je to užitečné pro zabezpečení: proces typu non-root nemůže překročit pevný limit. Je však nepohodlné v tom, že proces typu root nemůže mít nižší limit než jeho děti.

Proces může být kdykoli změněn. Je to výhodné, pokud procesy spolupracují, ale pro bezpečnost to není dobré.

Typickým případem použití měkkých limitů je deaktivace výpisů jádra (ulimit -Sc 0) při zachování možnosti jejich povolení pro konkrétní proces, který ladíte ((ulimit -Sc unlimited; myprocess)).

Příkaz ulimit Shell je obálka okolo systémového volání setrlimit , takže tam najdete konečnou dokumentaci.

Některé systémy nemusí implementovat všechny limity. Konkrétně některé systémy nepodporují meziprocesové limity deskriptorů souborů (Linux ano); pokud váš není, příkaz Shell může být ne-op.

Pevný limit je z bezpečnostních důvodů. Pro uživatele bez oprávnění root může pouze omezit pevný limit z aktuálně nastaveného pevného limitu; nemůže to zvýšit. Zvýšení pevného limitu může provést pouze uživatel root (nebo možná s právem Sudo, o tom si nejste jisti). Co může uživatel bez oprávnění root udělat, je zvolit limit (nazývaný soft limit), který může být pro své procesy v rozsahu [0, tvrdý limit]. Je to měkký limit, který je viděn a zohledňován procesy.

0
Ankit Shubham