Update to r44718:

Move 4.3.3 Limiting Users to a subsection of 14.13 Resource Limits.
This commit is contained in:
Bjoern Heidotting 2016-06-15 18:15:07 +00:00
parent 1103a0ed5f
commit 19fb9a0c8e
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48931
2 changed files with 331 additions and 327 deletions

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde$
basiert auf: r44695
basiert auf: r44718
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="basics">
<title>Grundlagen des UNIX Betriebssystems</title>
@ -1017,329 +1017,6 @@ passwd: done</screen>
</sect3>
</sect2>
<sect2 xml:id="users-limiting">
<title>Benutzer einschränken</title>
<indexterm><primary>Benutzer einschränken</primary></indexterm>
<indexterm>
<primary>Accounts</primary>
<secondary>einschränken</secondary>
</indexterm>
<para>&os; bietet dem Systemadministrator mehrere
Möglichkeiten die System-Ressourcen, die ein einzelner
Benutzer verwenden kann, einzuschränken. Diese Limitierungen
sind in zwei Kategorien eingeteilt: Festplattenkontingente und
andere Ressourcenbeschränkungen.</para>
<indexterm><primary>Quotas</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>Quotas</secondary>
</indexterm>
<indexterm><primary>Festplatten Quotas</primary></indexterm>
<para>Festplatten-Kontingente schränken den Plattenplatz, der
einem Benutzer zur Verfügung steht, ein. Sie bieten zudem,
ohne aufwändige Berechnung, einen schnellen Überblick
über den verbrauchten Plattenplatz. Kontingente werden im
<xref linkend="quotas"/> diskutiert.</para>
<para>Die anderen Ressourcenbeschränkungen umfassen die
Begrenzung von CPU, Speicher und weitere Ressourcen, die ein
Benutzer verbrauchen kann.</para>
<indexterm>
<primary><filename>/etc/login.conf</filename></primary>
</indexterm>
<para>Login-Klassen werden in
<filename>/etc/login.conf</filename> und sind in
&man.login.conf.5; im Detail beschrieben.n. Jeder Benutzer
wird einer Login-Klasse zugewiesen (standardmäßig
<literal>default</literal>) und jede Login-Klasse ist mit
einem Satz von Login-Fähigkeiten verbunden. Eine
Login-Fähigkeit ist ein
<literal><replaceable>Name</replaceable>=<replaceable>Wert</replaceable></literal>
Paar, in dem <replaceable>Name</replaceable> die Fähigkeit
bezeichnet und <replaceable>Wert</replaceable> ein beliebiger
Text ist, der in Abhänigkeit von
<replaceable>Name</replaceable> entsprechend verarbeitet wird.
Login-Klassen und -Fähigkeiten zu definieren ist ziemlich
einfach und wird auch in &man.login.conf.5;
beschrieben.</para>
<note>
<para>&os; liest die Konfiguration aus
<filename>/etc/login.conf</filename> normalerweise nicht
direkt, sondern nur über die Datenbank
<filename>/etc/login.conf.db</filename>, da diese eine
schnellere Abfrage erlaubt. Wenn
<filename>/etc/login.conf</filename> verändert wurde, muss
die <filename>/etc/login.conf.db</filename> mit dem
folgenden Kommando aktualisiert werden:</para>
<screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
</note>
<para>Ressourcenbeschränkungen unterscheiden sich von normalen
Login-Fähigkeiten zweifach. Erstens gibt es für jede
Beschränkung ein aktuelles und ein maximales Limit. Das
aktuelle Limit kann vom Benutzer oder einer Anwendung beliebig
bis zum maximalen Limit verändert werden. Letzteres kann
der Benutzer nur heruntersetzen. Zweitens gelten die meisten
Ressourcenbeschränkungen für jeden vom Benutzer gestarteten
Prozess, nicht für den Benutzer selbst. Beachten Sie jedoch,
dass diese Unterschiede durch das spezifische Einlesen der
Limits und nicht durch das System der Login-Fähigkeiten
entstehen (das heißt, Ressourcenbeschränkungen sind
<emphasis>keine</emphasis> Login-Fähigkeiten).</para>
<para>Hier befinden sich die am häufigsten benutzten
Ressourcenbeschränkungen. Der Rest kann zusammen mit den
anderen Login-Fähigkeiten in &man.login.conf.5; gefunden
werden:</para>
<variablelist>
<varlistentry>
<term><literal>coredumpsize</literal></term>
<listitem>
<indexterm><primary>coredumpsize</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>coredumpsize</secondary>
</indexterm>
<para>Das Limit der Größe einer core-Datei, die von einem
Programm generiert wird, unterliegt aus offensichtlichen
Gründen anderen Limits der Festplattenbenutzung, zum
Beispiel <literal>filesize</literal> oder
Festplattenkontingenten. Es wird aber trotzdem oft als
weniger harte Methode zur Kontrolle des
Festplattenplatz-Verbrauchs verwendet: Da Benutzer die
core-Dateien nicht selbst erstellen und sie oft nicht
löschen, kann sie diese Option davor retten, dass kein
Festplattenspeicher mehr zur Verfügung steht, sollte ein
großes Programm abstürzen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>cputime</literal></term>
<listitem>
<indexterm><primary>cputime</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>cputime</secondary>
</indexterm>
<para>Die maximale Rechenzeit, die ein Prozess eines
Benutzers verbrauchen darf. Überschreitet der Prozess
diesen Wert, wird er vom Kernel beendet.</para>
<note>
<para>Die Rechen<emphasis>zeit</emphasis> wird
limitiert, nicht die prozentuale Prozessorenbenutzung,
wie es in einigen Feldern in &man.top.1; und
&man.ps.1; dargestellt wird.</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>filesize</literal></term>
<listitem>
<indexterm><primary>filesize</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>filesize</secondary>
</indexterm>
<para>Hiermit lässt sich die maximale Größe einer Datei
bestimmen, die der Benutzer besitzen darf. Im Gegensatz
zu <link linkend="quotas">Festplattenkontingenten</link>
ist diese Beschränkung nur für jede einzelne Datei
gültig und nicht für den Platz, den alle Dateien eines
Benutzers verwenden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>maxproc</literal></term>
<listitem>
<indexterm><primary>maxproc</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>maxproc</secondary>
</indexterm>
<para>Das ist die maximale Anzahl von Prozessen, die ein
Benutzer starten darf, und beinhaltet sowohl
Vordergrund- als auch Hintergrundprozesse. Natürlich
darf dieser Wert nicht höher sein als das System-Limit,
das in <varname>kern.maxproc</varname> angegeben ist.
Vergessen Sie auch nicht, dass ein zu kleiner Wert den
Benutzer in seiner Produktivität einschränken könnte; es
ist oft nützlich, mehrfach eingeloggt zu sein, oder
<foreignphrase>Pipelines</foreignphrase>
<footnote>
<para><foreignphrase>Pipeline</foreignphrase> =
<emphasis>Leitung</emphasis>.
Mit <foreignphrase>Pipes</foreignphrase> sind
Verbindungen zwischen zwei Sockets in meistens
zwei verschiedenen Prozessen gemeint.</para>
</footnote>
zu verwenden. Ein paar Aufgaben, wie die Kompilierung
eines großen Programms, starten mehrere Prozesse.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>memorylocked</literal></term>
<listitem>
<indexterm><primary>memorylocked</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>memorylocked</secondary>
</indexterm>
<para>Dieses Limit gibt an, wie viel virtueller Speicher
von einem Prozess maximal im Arbeitsspeicher festgesetzt
werden kann (siehe auch &man.mlock.2;). Ein paar
systemkritische Programme, wie &man.amd.8;, verhindern
damit einen Systemzusammenbruch, der auftreten könnte,
wenn sie aus dem Speicher genommen werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>memoryuse</literal></term>
<listitem>
<indexterm><primary>memoryuse</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>memoryuse</secondary>
</indexterm>
<para>Bezeichnet den maximalen Speicher, den ein Prozess
benutzen darf und beinhaltet sowohl Arbeitsspeicher-,
als auch Swap- Benutzung. Es ist kein allübergreifendes
Limit für den Speicherverbrauch, aber ein guter
Anfang.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>openfiles</literal></term>
<listitem>
<indexterm><primary>openfiles</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>openfiles</secondary>
</indexterm>
<para>Mit diesem Limit lässt sich die maximale Anzahl
der von einem Prozess des Benutzers geöffneten Dateien
festlegen. In &os; werden Dateien auch verwendet, um
Sockets und <foreignphrase>IPC</foreignphrase>-Kanäle
<footnote>
<para><foreignphrase>IPC</foreignphrase> steht für
<foreignphrase>Interprocess
Communication</foreignphrase>.</para>
</footnote>
darzustellen. Setzen Sie es deshalb nicht zu niedrig.
Das System-Limit ist im <varname>kern.maxfiles</varname>
&man.sysctl.8; definiert.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>sbsize</literal></term>
<listitem>
<indexterm><primary>sbsize</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>sbsize</secondary>
</indexterm>
<para>Dieses Limit beschränkt den Netzwerk-Speicher und
damit die mbufs, die ein Benutzer verbrauchen darf. Es
stammt aus einer Antwort auf einen DoS-Angriff, bei dem
viele Netzwerk-Sockets geöffnet wurden, kann aber
generell dazu benutzt werden Netzwerk-Verbindungen zu
beschränken.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>stacksize</literal></term>
<listitem>
<para>Das ist die maximale Größe, auf die der Stack eines
Prozesses heranwachsen darf. Das allein ist natürlich
nicht genug, um den Speicher zu beschränken, den ein
Programm verwenden darf. Es sollte deshalb in
Verbindung mit anderen Limits gesetzt werden.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Beim Setzen von Ressourcenbeschränkungen sind noch andere
Dinge zu beachten. Nachfolgend ein paar generelle Tipps,
Empfehlungen und verschiedene Kommentare.</para>
<itemizedlist>
<listitem>
<para>Von <filename>/etc/rc</filename> beim Hochfahren des
Systems gestartete Prozesse werden der
<literal>daemon</literal> Login-Klasse zugewiesen.</para>
</listitem>
<listitem>
<para>Obwohl das mitgelieferte
<filename>/etc/login.conf</filename> eine Quelle von
vernünftigen Limits darstellt, können nur Sie, der
Administrator, wissen, was für Ihr System angebracht ist.
Ein Limit zu hoch anzusetzen könnte Ihr System für
Missbrauch öffnen, und ein zu niedriges Limit der
Produktivität einen Riegel vorschieben.</para>
</listitem>
<listitem>
<para>Benutzer des <application>&xorg;</application> sollten
wahrscheinlich mehr Ressourcen zugeteilt bekommen als
andere Benutzer. <application>&xorg;</application>
beansprucht selbst schon eine Menge Ressourcen, verleitet
die Benutzer aber auch, mehrere Programme gleichzeitig
laufen zu lassen.</para>
</listitem>
<listitem>
<para>Bedenken Sie, dass viele Limits für einzelne Prozesse
gelten und nicht für den Benutzer selbst. Setzt man zum
Beispiel <varname>openfiles</varname> auf 50, kann jeder
Prozess des Benutzers bis zu 50 Dateien öffnen. Dadurch
ist die maximale Anzahl von Dateien, die von einem
Benutzer geöffnet werden können,
<literal>openfiles</literal> mal
<literal>maxproc</literal>. Das gilt auch für den
Speicherverbrauch.</para>
</listitem>
</itemizedlist>
<para>Weitere Informationen über Ressourcenbeschränkungen,
Login-Klassen und -Fähigkeiten finden Sie in &man.cap.mkdb.1;,
&man.getrlimit.2; und &man.login.conf.5;.</para>
</sect2>
<sect2 xml:id="users-groups">
<title>Gruppen</title>

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/security/chapter.xml,v 1.178 2012/04/30 17:07:41 bcr Exp $
basiert auf: r44630
basiert auf: r44718
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="security">
<info><title>Sicherheit</title>
@ -103,8 +103,9 @@
</listitem>
<listitem>
<para>Wissen, wie Sie die Ressourcen-Datenbank benutzt, um die
Ressourcen für Benutzer zu steuern.</para>
<para>Wissen, wie Sie Login-Klassen oder die
Ressourcen-Datenbank benutzen, um die Ressourcen für
Benutzer zu steuern.</para>
</listitem>
</itemizedlist>
@ -3791,6 +3792,332 @@ UWWemqWuz3lAZuORQ9KX
Ressourcen über die Kommandozeile oder über eine
Konfigurationsdatei zu steuern.</para>
<para>In diesem Abschnitt werden beide Methoden
vorgestellt.</para>
<sect2 xml:id="users-limiting">
<title>Login-Klassen</title>
<indexterm><primary>Benutzer einschränken</primary></indexterm>
<indexterm>
<primary>Accounts</primary>
<secondary>einschränken</secondary>
</indexterm>
<para>&os; bietet dem Systemadministrator mehrere
Möglichkeiten die System-Ressourcen, die ein einzelner
Benutzer verwenden kann, einzuschränken. Diese Limitierungen
sind in zwei Kategorien eingeteilt: Festplattenkontingente und
andere Ressourcenbeschränkungen.</para>
<indexterm><primary>Quotas</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>Quotas</secondary>
</indexterm>
<indexterm><primary>Festplatten Quotas</primary></indexterm>
<para>Festplatten-Kontingente schränken den Plattenplatz, der
einem Benutzer zur Verfügung steht, ein. Sie bieten zudem,
ohne aufwändige Berechnung, einen schnellen Überblick
über den verbrauchten Plattenplatz. Kontingente werden im
<xref linkend="quotas"/> diskutiert.</para>
<para>Die anderen Ressourcenbeschränkungen umfassen die
Begrenzung von CPU, Speicher und weitere Ressourcen, die ein
Benutzer verbrauchen kann.</para>
<indexterm>
<primary><filename>/etc/login.conf</filename></primary>
</indexterm>
<para>Login-Klassen werden in
<filename>/etc/login.conf</filename> und sind in
&man.login.conf.5; im Detail beschrieben.n. Jeder Benutzer
wird einer Login-Klasse zugewiesen (standardmäßig
<literal>default</literal>) und jede Login-Klasse ist mit
einem Satz von Login-Fähigkeiten verbunden. Eine
Login-Fähigkeit ist ein
<literal><replaceable>Name</replaceable>=<replaceable>Wert</replaceable></literal>
Paar, in dem <replaceable>Name</replaceable> die Fähigkeit
bezeichnet und <replaceable>Wert</replaceable> ein beliebiger
Text ist, der in Abhänigkeit von
<replaceable>Name</replaceable> entsprechend verarbeitet wird.
Login-Klassen und -Fähigkeiten zu definieren ist ziemlich
einfach und wird auch in &man.login.conf.5;
beschrieben.</para>
<note>
<para>&os; liest die Konfiguration aus
<filename>/etc/login.conf</filename> normalerweise nicht
direkt, sondern nur über die Datenbank
<filename>/etc/login.conf.db</filename>, da diese eine
schnellere Abfrage erlaubt. Wenn
<filename>/etc/login.conf</filename> verändert wurde, muss
die <filename>/etc/login.conf.db</filename> mit dem
folgenden Kommando aktualisiert werden:</para>
<screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
</note>
<para>Ressourcenbeschränkungen unterscheiden sich von normalen
Login-Fähigkeiten zweifach. Erstens gibt es für jede
Beschränkung ein aktuelles und ein maximales Limit. Das
aktuelle Limit kann vom Benutzer oder einer Anwendung beliebig
bis zum maximalen Limit verändert werden. Letzteres kann
der Benutzer nur heruntersetzen. Zweitens gelten die meisten
Ressourcenbeschränkungen für jeden vom Benutzer gestarteten
Prozess, nicht für den Benutzer selbst. Beachten Sie jedoch,
dass diese Unterschiede durch das spezifische Einlesen der
Limits und nicht durch das System der Login-Fähigkeiten
entstehen (das heißt, Ressourcenbeschränkungen sind
<emphasis>keine</emphasis> Login-Fähigkeiten).</para>
<para>Hier befinden sich die am häufigsten benutzten
Ressourcenbeschränkungen. Der Rest kann zusammen mit den
anderen Login-Fähigkeiten in &man.login.conf.5; gefunden
werden:</para>
<variablelist>
<varlistentry>
<term><literal>coredumpsize</literal></term>
<listitem>
<indexterm><primary>coredumpsize</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>coredumpsize</secondary>
</indexterm>
<para>Das Limit der Größe einer core-Datei, die von einem
Programm generiert wird, unterliegt aus offensichtlichen
Gründen anderen Limits der Festplattenbenutzung, zum
Beispiel <literal>filesize</literal> oder
Festplattenkontingenten. Es wird aber trotzdem oft als
weniger harte Methode zur Kontrolle des
Festplattenplatz-Verbrauchs verwendet: Da Benutzer die
core-Dateien nicht selbst erstellen und sie oft nicht
löschen, kann sie diese Option davor retten, dass kein
Festplattenspeicher mehr zur Verfügung steht, sollte ein
großes Programm abstürzen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>cputime</literal></term>
<listitem>
<indexterm><primary>cputime</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>cputime</secondary>
</indexterm>
<para>Die maximale Rechenzeit, die ein Prozess eines
Benutzers verbrauchen darf. Überschreitet der Prozess
diesen Wert, wird er vom Kernel beendet.</para>
<note>
<para>Die Rechen<emphasis>zeit</emphasis> wird
limitiert, nicht die prozentuale Prozessorenbenutzung,
wie es in einigen Feldern in &man.top.1; und
&man.ps.1; dargestellt wird.</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>filesize</literal></term>
<listitem>
<indexterm><primary>filesize</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>filesize</secondary>
</indexterm>
<para>Hiermit lässt sich die maximale Größe einer Datei
bestimmen, die der Benutzer besitzen darf. Im Gegensatz
zu <link linkend="quotas">Festplattenkontingenten</link>
ist diese Beschränkung nur für jede einzelne Datei
gültig und nicht für den Platz, den alle Dateien eines
Benutzers verwenden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>maxproc</literal></term>
<listitem>
<indexterm><primary>maxproc</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>maxproc</secondary>
</indexterm>
<para>Das ist die maximale Anzahl von Prozessen, die ein
Benutzer starten darf, und beinhaltet sowohl
Vordergrund- als auch Hintergrundprozesse. Natürlich
darf dieser Wert nicht höher sein als das System-Limit,
das in <varname>kern.maxproc</varname> angegeben ist.
Vergessen Sie auch nicht, dass ein zu kleiner Wert den
Benutzer in seiner Produktivität einschränken könnte; es
ist oft nützlich, mehrfach eingeloggt zu sein, oder
<foreignphrase>Pipelines</foreignphrase>
<footnote>
<para><foreignphrase>Pipeline</foreignphrase> =
<emphasis>Leitung</emphasis>.
Mit <foreignphrase>Pipes</foreignphrase> sind
Verbindungen zwischen zwei Sockets in meistens
zwei verschiedenen Prozessen gemeint.</para>
</footnote>
zu verwenden. Ein paar Aufgaben, wie die Kompilierung
eines großen Programms, starten mehrere Prozesse.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>memorylocked</literal></term>
<listitem>
<indexterm><primary>memorylocked</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>memorylocked</secondary>
</indexterm>
<para>Dieses Limit gibt an, wie viel virtueller Speicher
von einem Prozess maximal im Arbeitsspeicher festgesetzt
werden kann (siehe auch &man.mlock.2;). Ein paar
systemkritische Programme, wie &man.amd.8;, verhindern
damit einen Systemzusammenbruch, der auftreten könnte,
wenn sie aus dem Speicher genommen werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>memoryuse</literal></term>
<listitem>
<indexterm><primary>memoryuse</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>memoryuse</secondary>
</indexterm>
<para>Bezeichnet den maximalen Speicher, den ein Prozess
benutzen darf und beinhaltet sowohl Arbeitsspeicher-,
als auch Swap- Benutzung. Es ist kein allübergreifendes
Limit für den Speicherverbrauch, aber ein guter
Anfang.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>openfiles</literal></term>
<listitem>
<indexterm><primary>openfiles</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>openfiles</secondary>
</indexterm>
<para>Mit diesem Limit lässt sich die maximale Anzahl
der von einem Prozess des Benutzers geöffneten Dateien
festlegen. In &os; werden Dateien auch verwendet, um
Sockets und <foreignphrase>IPC</foreignphrase>-Kanäle
<footnote>
<para><foreignphrase>IPC</foreignphrase> steht für
<foreignphrase>Interprocess
Communication</foreignphrase>.</para>
</footnote>
darzustellen. Setzen Sie es deshalb nicht zu niedrig.
Das System-Limit ist im <varname>kern.maxfiles</varname>
&man.sysctl.8; definiert.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>sbsize</literal></term>
<listitem>
<indexterm><primary>sbsize</primary></indexterm>
<indexterm>
<primary>Benutzer einschränken</primary>
<secondary>sbsize</secondary>
</indexterm>
<para>Dieses Limit beschränkt den Netzwerk-Speicher und
damit die mbufs, die ein Benutzer verbrauchen darf. Es
stammt aus einer Antwort auf einen DoS-Angriff, bei dem
viele Netzwerk-Sockets geöffnet wurden, kann aber
generell dazu benutzt werden Netzwerk-Verbindungen zu
beschränken.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>stacksize</literal></term>
<listitem>
<para>Das ist die maximale Größe, auf die der Stack eines
Prozesses heranwachsen darf. Das allein ist natürlich
nicht genug, um den Speicher zu beschränken, den ein
Programm verwenden darf. Es sollte deshalb in
Verbindung mit anderen Limits gesetzt werden.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Beim Setzen von Ressourcenbeschränkungen sind noch andere
Dinge zu beachten. Nachfolgend ein paar generelle Tipps,
Empfehlungen und verschiedene Kommentare.</para>
<itemizedlist>
<listitem>
<para>Von <filename>/etc/rc</filename> beim Hochfahren des
Systems gestartete Prozesse werden der
<literal>daemon</literal> Login-Klasse zugewiesen.</para>
</listitem>
<listitem>
<para>Obwohl das mitgelieferte
<filename>/etc/login.conf</filename> eine Quelle von
vernünftigen Limits darstellt, können nur Sie, der
Administrator, wissen, was für Ihr System angebracht ist.
Ein Limit zu hoch anzusetzen könnte Ihr System für
Missbrauch öffnen, und ein zu niedriges Limit der
Produktivität einen Riegel vorschieben.</para>
</listitem>
<listitem>
<para>Benutzer von <application>&xorg;</application> sollten
wahrscheinlich mehr Ressourcen zugeteilt bekommen als
andere Benutzer. <application>&xorg;</application>
beansprucht selbst schon eine Menge Ressourcen, verleitet
die Benutzer aber auch, mehrere Programme gleichzeitig
laufen zu lassen.</para>
</listitem>
<listitem>
<para>Bedenken Sie, dass viele Limits für einzelne Prozesse
gelten und nicht für den Benutzer selbst. Setzt man zum
Beispiel <varname>openfiles</varname> auf 50, kann jeder
Prozess des Benutzers bis zu 50 Dateien öffnen. Dadurch
ist die maximale Anzahl von Dateien, die von einem
Benutzer geöffnet werden können,
<literal>openfiles</literal> mal
<literal>maxproc</literal>. Das gilt auch für den
Speicherverbrauch.</para>
</listitem>
</itemizedlist>
<para>Weitere Informationen über Ressourcenbeschränkungen,
Login-Klassen und -Fähigkeiten finden Sie in &man.cap.mkdb.1;,
&man.getrlimit.2; und &man.login.conf.5;.</para>
</sect2>
<sect2>
<title>Einschränkung von Ressourcen aktivieren und
konfigurieren</title>