Update to r44718:
Move 4.3.3 Limiting Users to a subsection of 14.13 Resource Limits.
This commit is contained in:
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
|
@ -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>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue