[linux-l] Re: Keine Limits
Oliver Bandel
oliver at first.in-berlin.de
Di Feb 6 21:12:16 CET 2007
On Tue, Feb 06, 2007 at 12:45:02PM +0100, Volker Grabsch wrote:
> Hallo Oliver,
>
> ich beantworte diesen Teil mal öffentlich, weil's auch für andere
> interessant sein könnte.
>
[...]
Bitte sowas zukünftig vorher abklären.
Danke.
>
> On Tue, Feb 06, 2007 at 12:31:32AM +0100, Oliver Bandel wrote:
> > Während ich unter Linux und Mac den Wert wenigstens verringern kann
> > aber hinterher nicht mehr vergrößern (nicht malauf den Ausgangswert),
>
> Das stimmt so nicht ganz.
>
> Ja, ein Prozess kann seine ulimits immer nur runtersetzen, und zwar
> irreversibel. Per Design. Und das ist Gut So[tm]. Das gilt auch
> für chroot, für Capabilities (siehe VServer-Patch), und so weiter.
>
> Aber du kannst den Wert trotzdem "zurücksetzen", indem du *zuerst*
> einen Subprozess aufrufst, und *dieser* sich dann via ulimit kastiert.
> Der Subprozess kriegt das Limit nicht mehr hochgesetzt, aber der
> Elternprozess wird nicht beeinflusst.
Ja, das ist klar.
Aber Du drehst dann ja garnix rückwärts... ;-)
Also stimmt es schon, was ich schrieb.
root kann aber wohl auch Werte erhöhen,
jedenfalls via C-API (und auf BSD (OS-X)).
Ob die Shells das mitmachen?
man getrlimit
bzw.
man setrlimit
"Only the super-user may raise the maximum limits. Other users may only
alter rlim_cur within the range from 0 to rlim_max or (irreversibly)
lower rlim_max."
Vielleicht ändern die Shells also rlim_max (hard limit).
Jedenfalls macht das die bash allem Anschein nach so.
Gruß,
Oliver
Mehr Informationen über die Mailingliste linux-l