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$
|
$FreeBSD$
|
||||||
$FreeBSDde$
|
$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">
|
<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>
|
<title>Grundlagen des UNIX Betriebssystems</title>
|
||||||
|
@ -1017,329 +1017,6 @@ passwd: done</screen>
|
||||||
</sect3>
|
</sect3>
|
||||||
</sect2>
|
</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">
|
<sect2 xml:id="users-groups">
|
||||||
<title>Gruppen</title>
|
<title>Gruppen</title>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
$FreeBSD$
|
$FreeBSD$
|
||||||
$FreeBSDde: de-docproj/books/handbook/security/chapter.xml,v 1.178 2012/04/30 17:07:41 bcr Exp $
|
$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">
|
<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>
|
<info><title>Sicherheit</title>
|
||||||
|
@ -103,8 +103,9 @@
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Wissen, wie Sie die Ressourcen-Datenbank benutzt, um die
|
<para>Wissen, wie Sie Login-Klassen oder die
|
||||||
Ressourcen für Benutzer zu steuern.</para>
|
Ressourcen-Datenbank benutzen, um die Ressourcen für
|
||||||
|
Benutzer zu steuern.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
|
@ -3791,6 +3792,332 @@ UWWemqWuz3lAZuORQ9KX
|
||||||
Ressourcen über die Kommandozeile oder über eine
|
Ressourcen über die Kommandozeile oder über eine
|
||||||
Konfigurationsdatei zu steuern.</para>
|
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>
|
<sect2>
|
||||||
<title>Einschränkung von Ressourcen aktivieren und
|
<title>Einschränkung von Ressourcen aktivieren und
|
||||||
konfigurieren</title>
|
konfigurieren</title>
|
||||||
|
|
Loading…
Reference in a new issue