MFen 1.32

This commit is contained in:
Udo Erdelhoff 2002-03-17 10:09:13 +00:00
parent 0a7c3f61e2
commit f7d4a3a49f
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=12504

View file

@ -2,24 +2,231 @@
The FreeBSD Documentation Project
The FreeBSD German Documentation Project
Original Revision 1.7
Original Revision 1.32
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/users/chapter.sgml,v 1.5 2001/12/14 17:48:39 mheinen Exp $
$FreeBSDde: de-docproj/books/handbook/users/chapter.sgml,v 1.6 2002/03/16 19:48:42 mheinen Exp $
-->
<chapter id="users">
<chapterinfo>
<authorgroup>
<author>
<firstname>Neil</firstname>
<surname>Blakey-Milner</surname>
<contrib>Beigetragen von </contrib>
</author>
</authorgroup>
<!-- Feb 2000 -->
<authorgroup>
<author>
<firstname>Robert</firstname>
<surname>Drehmel</surname>
<contrib>&Uuml;bersetzt von </contrib>
</author>
</authorgroup>
<!-- Jul 2000 -->
</chapterinfo>
<title>Benutzer und grundlegende Account-Verwaltung</title>
<sect1 id="users-synopsis">
<title>&Uuml;bersicht</title>
<para><emphasis>Beigesteuert von &a.nbm; im Februar 2000. &Uuml;bersetzt
von &a.de.robert; im Juli 2000.</emphasis></para>
<para>Einen FreeBSD Computer k&ouml;nnen mehrere Benutzer zur selben
Zeit benutzen, allerdings kann immer nur einer vor der Konsole sitzen
<footnote>
<para>Au&szlig;er Sie verwenden, wie in <xref
linkend="serialcomms"> besprochen, zus&auml;tzliche Terminals</para>
</footnote>, &uuml;ber das Netzwerk k&ouml;nnen beliebig viele
Benutzer angemeldet sein. Jeder Benutzer muss einen Account
haben, um das System benutzen zu k&ouml;nnen.</para>
<para>Nachdem Sie dieses Kapitel gelesen haben, werden Sie</para>
<itemizedlist>
<listitem>
<para>die verschiedenen Account-Typen von FreeBSD kennen,</para>
</listitem>
<listitem>
<para>wissen, wie Accounts angelegt werden,</para>
</listitem>
<listitem>
<para>wissen, wie Sie Accounts l&ouml;schen,</para>
</listitem>
<listitem>
<para>wie Sie Attribute eines Accounts, wie den Loginnamen oder
die Login-Shell &auml;ndern,</para>
</listitem>
<listitem>
<para>wissen, wie Sie Limits f&uuml;r einen Account setzen, um
beispielsweise Ressourcen, wie Speicher oder CPU-Zeit,
einzuschr&auml;nken,</para>
</listitem>
<listitem>
<para>wie Sie mit Gruppen die Verwaltung der Accounts
vereinfachen.</para>
</listitem>
</itemizedlist>
<para>Vor dem Lesen dieses Kapitels sollten Sie</para>
<itemizedlist>
<listitem>
<para>die Grundlagen von Unix und FreeBSD (<xref linkend="basics">)
verstanden haben.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="users-introduction">
<title>Einf&uuml;hrung</title>
<para>Jeder Zugriff auf das System geschieht &uuml;ber Accounts und alle
Prozesse werden von Benutzern gestartet, also sind Benutzer- und
Account-Verwaltung von wesentlicher Bedeutung in FreeBSD-Systemen.</para>
<para>Mit jedem Account eines FreeBSD Systems sind bestimmte Informationen
verkn&uuml;pft, die diesen Account identifizieren.</para>
<variablelist>
<varlistentry>
<term>Loginnamen</term>
<listitem>
<para>Den Loginnamen geben Sie bei der Anmeldung ein, wenn Sie
dazu mit <prompt>login:</prompt> aufgefordert werden.
Loginnamen m&uuml;ssen auf dem System eindeutig sein, das
hei&szlig;t auf einem System kann es nicht zwei Accounts mit
demselben Loginnamen geben. In &man.passwd.5; wird
beschrieben, wie ein g&uuml;ltiger Loginnamen gebildet wird.
Normalerweise sollten Sie Namen verwenden, die aus
Kleinbuchstaben bestehen und bis zu acht Zeichen lang sind.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Passwort</term>
<listitem>
<para>Mit jedem Account ist ein Passwort verkn&uuml;pft. Wenn
das Passwort leer ist, wird es bei der Anmeldung nicht
abgefragt. Das ist allerdings nicht zu empfehlen, daher sollte
jeder Account ein Passwort besitzen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>User ID (UID)</term>
<listitem>
<para>Die UID ist eine Zahl zwischen 0 und 65536, die einen
Account eindeutig identifiziert. Intern verwendet FreeBSD nur
die UID, Loginnamen werden zuerst in eine UID umgewandelt,
mit der das System dann weiter arbeitet. Das bedeutet, dass
Sie Accounts mit unterschiedlichen Loginnamen aber gleicher
UID einrichten k&ouml;nnen. Vom Standpunkt des Systems handelt
es sich dabei um denselben Account. In der Praxis werden Sie
diese Eigenschaft des Systems wahrscheinlich nicht
nutzen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Group ID (GID)</term>
<listitem>
<para>Die GID ist eine Zahl zwischen 0 und 65536, die eine Gruppe
eindeutig identifiziert. Mit Gruppen kann der Zugriff auf
Ressourcen &uuml;ber die GID anstelle der UID geregelt werden.
Einige Konfigurationsdateien werden durch diesen Mechanismus
deutlich kleiner. Ein Account kann mehreren Gruppen
zugeh&ouml;ren.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Login-Klasse</term>
<listitem>
<para>Login-Klassen erweitern das Gruppenkonzept. Sie
erh&ouml;hen die Flexibilit&auml;t des Systems in der Handhabung
der verschiedenen Accounts.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>G&uuml;ltigkeit von Passw&ouml;rtern</term>
<listitem>
<para>Ein regelm&auml;&szlig;iges &Auml;ndern des Passworts wird in
der Voreinstellung von FreeBSD nicht erzwungen. Sie
k&ouml;nnen allerdings einen Passwortwechsel nach einer
gewissen Zeit auf Basis einzelner Accounts erzwingen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Verfallszeit eines Accounts</term>
<listitem>
<para>In der Voreinstellung verfallen unter FreeBSD keine
Accounts. Wenn Sie Accounts einrichten, die nur f&uuml;r eine
bestimmte Zeit g&uuml;ltig sein sollen, beispielsweise Accounts
f&uuml;r Teilnehmer eines Praktikums, k&ouml;nnen Sie angeben,
wie lange der Account g&uuml;ltig sein soll. Nachdem die
angegebene Zeitspanne verstrichen ist, kann dieser Account
nicht mehr zum Anmelden verwendet werden, obwohl alle
Verzeichnisse und Dateien, die diesem Account geh&ouml;ren,
noch vorhanden sind.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>vollst&auml;ndiger Benutzername</term>
<listitem>
<para>FreeBSD identifiziert einen Account eindeutig &uuml;ber
den Loginnamen, der aber keine &Auml;hnlichkeit mit dem
richtigen Namen des Benutzers haben muss. Der
vollst&auml;ndige Benutzername kann daher beim Einrichten eines
Accounts angegeben werden.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Heimatverzeichnis</term>
<listitem>
<para>Das Heimatverzeichnis gibt den vollst&auml;ndigen Pfad zu
dem Verzeichnis an, in dem sich der Benutzer nach erfolgreicher
Anmeldung befindet. Es ist &uuml;blich, alle
Heimatverzeichnisse unter
<filename>/home/<replaceable>Loginname</replaceable></filename>
oder
<filename>/usr/home/<replaceable>Loginname</replaceable></filename>
anzulegen. Im Heimatverzeichnis oder in dort angelegten
Verzeichnissen werden die Dateien eines Benutzers
gespeichert.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Login-Shell</term>
<listitem>
<para>Grunds&auml;tzlich ist die Schnittstelle zum System eine
Shell, von denen es viele unterschiedliche gibt. Die
bevorzugte Shell eines Benutzers kann seinem Account zugeordnet
werden.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Es gibt drei Haupttypen von Accounts: Der
<link linkend="users-superuser">Superuser</link>,
<link linkend="users-system">Systembenutzer</link> und
@ -33,6 +240,11 @@
<sect1 id="users-superuser">
<title>Der Superuser-Account</title>
<indexterm>
<primary>Accounts</primary>
<secondary>Superuser (root)</secondary>
</indexterm>
<para>Der Superuser-Account, normalerweise <username>root</username>
genannt, ist vorkonfiguriert und erleichtert die Systemverwaltung, sollte
@ -46,20 +258,17 @@
resultieren kann. Benutzer-Accounts sind nicht f&auml;hig das System
versehentlich zu zerst&ouml;ren, deswegen ist es generell am besten
normale Benutzer-Accounts zu verwenden, solange man nicht
haupts&auml;chlich die extra Privililegien ben&ouml;tigt.</para>
haupts&auml;chlich die extra Privilegien ben&ouml;tigt.</para>
<para>Zus&auml;tzlich sollten Sie Kommandos, die Sie als Superuser
eingeben, immer doppelt und dreifach &uuml;berpr&uuml;fen, da ein
<para>Kommandos, die Sie als Superuser eingeben, sollten Sie immer
doppelt und dreifach &uuml;berpr&uuml;fen, da ein
zus&auml;tzliches Leerzeichen oder ein fehlender Buchstabe irreparablen
Datenverlust bedeuten kann. Diese zus&auml;tzlichen Privilegien, die Sie
ben&ouml;tigten, als Sie zu dem Superuser-Account gewechselt haben,
bedeuten, dass die Absicherung Ihres normalen Benutzer-Accounts nicht
mehr g&uuml;ltig ist.</para>
Datenverlust bedeuten kann.</para>
<para>Das erste, das Sie tun sollten, nachdem Sie dieses Kapitel gelesen
haben, ist einen unprivilegierten Benutzer f&uuml;r Ihre eigene normale
Benutzung zu erstellen, wenn Sie das nicht bereits getan haben. Das
trifft immer zu, egal ob Sie ein Mehrbenutzer-System oder ein System
trifft immer zu, egal ob Sie ein Mehrbenutzersystem oder ein System
laufen haben, welches Sie alleine benutzen. Sp&auml;ter in diesem
Kapitel besprechen wir, wie man zus&auml;tzliche Accounts erstellt und
wie man zwischen dem normalen Benutzer und dem Superuser wechselt.</para>
@ -68,25 +277,49 @@
<sect1 id="users-system">
<title>System-Accounts</title>
<indexterm>
<primary>Accounts</primary>
<secondary>System-Accounts</secondary>
</indexterm>
<para>Systembenutzer starten Dienste wie DNS, mail, Web-Server und so
weiter. Der Grund daf&uuml;r ist die Sicherheit; wenn die Programme
von dem Superuser gestartet werden, k&ouml;nnen Sie ohne
Einschr&auml;nkungen handeln.</para>
<indexterm>
<primary>Accounts</primary>
<secondary><username>daemon</username></secondary>
</indexterm>
<indexterm>
<primary>Accounts</primary>
<secondary><username>operator</username></secondary>
</indexterm>
<para>Beispiele von Systembenutzern sind <username>daemon</username>,
<username>operator</username>, <username>bind</username> (f&uuml;r den
Domain Name Service) und <username>news</username>. Oft erstellen
Systemadministratoren den Benutzer <username>httpd</username>, um
Web-Server laufen zu lassen, die sie installieren.</para>
<indexterm>
<primary>Accounts</primary>
<secondary><username>nobody</username></secondary>
</indexterm>
<para><username>nobody</username> ist der generische unprivilegierte
Systembenutzer, aber je mehr Dienste nobody benutzen, um so
privilegierter wird er.</para>
Systembenutzer. Bedenken Sie aber, dass je mehr Dienste
<username>nobody</username> benutzen, immer mehr Dateien und Prozesse zu
diesem Benutzer geh&ouml;ren und dieser Benutzer umso privilegierter
wird.</para>
</sect1>
<sect1 id="users-user">
<title>Benutzer-Accounts</title>
<indexterm>
<primary>Accounts</primary>
<secondary>Benutzer-Accounts</secondary>
</indexterm>
<para>Benutzer-Account sind das prim&auml;re Mittel des Zugriffs f&uuml;r
echte Menschen auf das System und isolieren Benutzer und Umgebung,
sch&uuml;tzen die Benutzer davor das System oder Daten anderer Benutzer
@ -96,7 +329,7 @@
<para>Jede Person, die auf Ihr System zugreift, sollte ihren eigenen
Account besitzen. Das erlaubt Ihnen herauszufinden, wer was macht
und h&auml;lt Leute davon ab, die Einstellungen der anderen zu
ver&auml;ndern oder mails zu lesen, die nicht f&uuml;r sie bestimmt
ver&auml;ndern oder Mails zu lesen, die nicht f&uuml;r sie bestimmt
waren.</para>
<para>Jeder Benutzer kann seine eigene Umgebung einstellen, um sie
@ -107,23 +340,70 @@
<sect1 id="users-modifying">
<title>Accounts ver&auml;ndern</title>
<para><application>pw</application> ist ein m&auml;chtiges und flexibles
Mittel zum &Auml;ndern von Accounts, aber <application>adduser
</application> wird empfohlen zum Erstellen und <application>rmuser
</application> zum L&ouml;schen von Accounts.</para>
<indexterm>
<primary>Accounts</primary>
<secondary>ver&auml;ndern</secondary>
</indexterm>
<para><application>chpass</application> erlaubt dem Systemadministrator
und normalen Benutzern Passw&ouml;rter, Shells und personelle
Informationen einzustellen. Jedoch ist <application>passwd</application>
das gew&ouml;hnlichere Mittel, um Passw&ouml;rter im speziellen zu
&auml;ndern.</para>
<para>Unter Unix gibt es verschiedene Kommandos, um Accounts zu
ver&auml;ndern. Die gebr&auml;uchlichsten Kommandos sind unten,
gefolgt von einer detaillierten Beschreibung, zusammengefasst.</para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Kommando</entry>
<entry>Zusammenfassung</entry>
</row>
</thead>
<tbody>
<row>
<entry><command>adduser</command></entry>
<entry>Das empfohlene Werkzeug, um neue Accounts zu
erstellen.</entry>
</row>
<row>
<entry><command>rmuser</command></entry>
<entry>Das empfohlene Werkzeug, um Accounts zu
l&ouml;schen.</entry>
</row>
<row>
<entry><command>chpass</command></entry>
<entry>Ein flexibles Werkzeug, um Informationen in der
Account-Datenbank zu ver&auml;ndern.</entry>
</row>
<row>
<entry><command>passwd</command></entry>
<entry>Ein einfaches Werkzeug, um Passw&ouml;rter von Accounts
zu &auml;ndern.</entry>
</row>
<row>
<entry><command>pw</command></entry>
<entry>Ein m&auml;chtiges und flexibles Werkzeug um alle
Informationen &uuml;ber Accounts zu &auml;ndern.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<sect2 id="users-adduser">
<title>adduser</title>
<title><application>adduser</application></title>
<indexterm>
<primary>Accounts</primary>
<secondary>erstellen</secondary>
</indexterm>
<indexterm>
<primary><command>adduser</command></primary>
</indexterm>
<indexterm>
<primary><filename class=directory>/usr/share/skel</filename></primary>
</indexterm>
<para><application>adduser</application> ist ein einfaches Programm
um neue Benutzer hinzuzuf&uuml;gen. Es erstellt <filename>passwd
</filename> und <filename>group</filename> Eintr&auml;ge f&uuml;r den
um neue Benutzer hinzuzuf&uuml;gen. Es erstellt
<filename>passwd</filename> und <filename>group</filename>
Eintr&auml;ge f&uuml;r den
Benutzer, genauso wie ein home Verzeichnis, kopiert ein paar
vorgegebene dotfiles aus <filename>/usr/share/skel</filename> und kann
optional dem Benutzer eine ,,Willkommen``-Nachricht zuschicken.</para>
@ -131,24 +411,25 @@
<para>Um die anf&auml;ngliche Konfigurationsdatei zu erstellen,
benutzen Sie: <command>adduser -s -config_create</command>.
<footnote>
<para>Das <option>-s</option> bringt <application>adduser
</application> dazu, weniger Fragen und Fehlermeldungen auszugeben.
<para>Das <option>-s</option> bringt <command>adduser</command>
dazu, weniger Fragen und Fehlermeldungen auszugeben.
Wir benutzen <option>-v</option> sp&auml;ter, wenn wir die
Voreinstellungen &auml;ndern wollen.</para>
</footnote>
Zun&auml;chst konfigurieren wir addusers Voreinstellungen und
erstellen unseren ersten Benutzer-Account, da es b&ouml;se und
unangenehm ist, root f&uuml;r normale Aufgaben zu verwenden.</para>
Zun&auml;chst konfigurieren wir Voreinstellungen von
<command>adduser</command> und erstellen unseren ersten
Benutzer-Account, da es b&ouml;se und unangenehm ist,
<username>root</username> f&uuml;r normale Aufgaben zu verwenden.</para>
<example>
<title>Die Konfiguration f&uuml;r adduser &auml;ndern</title>
<title><command>adduser</command> konfigurieren</title>
<screen>&prompt.root; <userinput>adduser -v</userinput>
Use option ``-silent'' if you don't want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: csh date no sh tcsh [sh]: <userinput>tcsh</userinput>
Your default shell is: tcsh -> /usr/local/bin/tcsh
Enter your default shell: csh date no sh tcsh zsh [sh]: <userinput>zsh</userinput>
Your default shell is: zsh -&gt; /usr/local/bin/zsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Send message from file: /etc/adduser.message no
@ -162,7 +443,7 @@ Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username [a-z0-9_-]: <userinput>jru</userinput>
Enter full name []: <userinput>J. Random User</userinput>
Enter shell csh date no sh tcsh [tcsh]:
Enter shell csh date no sh tcsh zsh [zsh]:
Enter home directory (full path) [/home/jru]:
Uid [1001]:
Enter login class: default []:
@ -175,12 +456,12 @@ Enter password again []:
Name: jru
Password: ****
Fullname: J. Random User
Uid: 1007
Gid: 1007 (jru)
Uid: 1001
Gid: 1001 (jru)
Class:
Groups: jru wheel
HOME: /home/jru
Shell: /usr/local/bin/tcsh
Shell: /usr/local/bin/zsh
OK? (y/n) [y]: <userinput>y</userinput>
Added user ``jru''
Copy files from /usr/share/skel to /home/jru
@ -190,18 +471,19 @@ Goodbye!
</example>
<para>Zusammengefasst haben wir die vorgegebene Shell in
<application>tcsh</application> (eine zus&auml;tzliche Shell aus
den Packages) ge&auml;ndert und das Senden einer
<application>zsh</application> (eine zus&auml;tzliche Shell aus
der Ports-Sammlung) ge&auml;ndert und das Senden einer
,,Willkommen``-Nachricht an neue Benutzer abgeschaltet.
Danach haben wir die Konfiguration abgespeichert und anschliessend
einen Account f&uuml;r <username>jru</username> eingerichtet
und sichergestellt, dass <username>jru</username> in der
Gruppe <username>wheel</username> ist (was sp&auml;ter wichtig ist,
wie wir sehen werden).</para>
Gruppe <username>wheel</username> ist, so dass Sie mit
<command>su</command> zu <username>root</username> wechseln
kann.</para>
<note>
<para>Wenn Sie das Passwort eingeben, werden weder Passwort noch
Sternchen angezeigt. Passen Sie auf, dass Sie das Passwort nicht
zweimal falsch eingeben. :-)</para>
zweimal falsch eingeben.</para>
</note>
<note>
<para>Benutzen Sie ab jetzt <command>adduser</command> ohne Argumente,
@ -213,13 +495,18 @@ Goodbye!
</sect2>
<sect2 id="users-rmuser">
<title>rmuser</title>
<title><application>rmuser</application></title>
<para><application>rmuser</application> entfernt Benutzer aus dem System,
inklusive der Spuren ausserhalb der Benutzer-Datenbank.</para>
<indexterm><primary><command>rmuser</command></primary></indexterm>
<indexterm>
<primary>Accounts</primary>
<secondary>l&ouml;schen</secondary>
</indexterm>
<para><application>rmuser</application> f&uuml;hrt die folgenden
Schritte durch:</para>
<para>Benutzen Sie <command>rmuser</command>, um einen Account
vollst&auml;ndig aus dem System zu entfernen.
<command>rmuser</command> f&uuml;hrt die folgenden Schritte
durch:</para>
<procedure>
<step>
@ -250,12 +537,12 @@ Goodbye!
Dateispeicherbereichen wie <filename>/tmp</filename>.</para>
</step>
<step>
<para>Entfernt den Benutzernamen von allen Gruppen, zu denen er
<para>Entfernt den Loginnamen von allen Gruppen, zu denen er
geh&ouml;rt, aus <filename>/etc/group</filename>.
<note>
<para>Wenn eine Gruppe leer wird und der Gruppenname mit dem
Benutzernamen identisch ist, wird die Gruppe entfernt; das
Loginnamen identisch ist, wird die Gruppe entfernt; das
erg&auml;nzt sich mit den einzelnen Benutzer-Gruppen, die von
&man.adduser.8; f&uuml;r jeden neuen Benutzer erstellt werden.
</para>
@ -272,11 +559,12 @@ Goodbye!
sicherzustellen versucht, dass Sie wissen, was Sie tun.</para>
<example>
<title>interaktives Account-Entfernen mit rmuser</title>
<title>Interaktives L&ouml;schen von Account mit
<command>rmuser</command></title>
<screen>&prompt.root; <userinput>rmuser jru</userinput>
Matching password entry:
jru:*:1000:1000::0:0:J. Random User:/home/jru:/usr/local/bin/tcsh
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? <userinput>y</userinput>
Remove user's home directory (/home/jru)? <userinput>y</userinput>
Updating password file, updating databases, done.
@ -289,50 +577,36 @@ Removing files belonging to jru from /var/tmp/vi.recover: done.
</example>
</sect2>
<sect2 id="users-pw">
<title>pw</title>
<para><application>pw</application> ist ein Kommandozeilenprogramm, mit
dem man Benutzer und Gruppen erstellen, entfernen und anzeigen kann,
und fungiert als Editor der Benutzer- und Gruppendateien des Systems.
</para>
<para>Es wurde entworfen um n&uuml;tzlich als direkt ausgef&uuml;hrter
Befehl und f&uuml;r die Benutzung in Shell-Scripts zu sein.</para>
<para>Informationen dar&uuml;ber gibt es in &man.pw.8;.</para>
</sect2>
<sect2 id="users-chpass">
<title>chpass</title>
<title><application>chpass</application></title>
<para><application>chpass</application> &auml;ndert Informationen der
<indexterm><primary><command>chpass</command></primary></indexterm>
<para><command>chpass</command> &auml;ndert Informationen der
Benutzerdatenbank wie Passw&ouml;rter, Shells und personelle
Informationen.</para>
<para>Nur Systemadministratoren, als Superuser, k&ouml;nnen die
Informationen und Passw&ouml;rter der anderen Benutzer mit
<application>chpass</application> ver&auml;ndern.</para>
<command>chpass</command> ver&auml;ndern.</para>
<para>Werden keine Optionen neben dem optionalen Benutzernamen
angegeben, zeigt <application>chpass</application> einen Editor
mit Benutzerinformationen an und wenn dieser Editor beendet wird,
versucht es die Informationen in der Benutzerdatenbank zu
ver&auml;ndern.</para>
<para>Werden keine Optionen neben dem optionalen Loginnamen
angegeben, zeigt <command>chpass</command> einen Editor
mit Account-Informationen an und aktualisiert die
Account-Datenbank, wenn dieser Editor beendet wird.</para>
<example>
<title>Interaktives chpass des Superusers</title>
<title>Interaktives <command>chpass</command> des Superusers</title>
<screen>#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1000
Gid [# or name]: 1000
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/tcsh
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
@ -362,25 +636,31 @@ Other information:</screen>
<command>ypchpass</command>, <command>ypchfn</command> und
<command>ypchsh</command>. NIS wird automatisch unterst&uuml;tzt,
deswegen ist es nicht notwendig das <literal>yp</literal> vor dem
Kommando einzugeben.</para>
Kommando einzugeben. NIS wird sp&auml;ter
<!-- in <xref linkend="advanced-networking">--> besprochen.</para>
</note>
</sect2>
<sect2 id="users-passwd">
<title>passwd</title>
<title><application>passwd</application></title>
<para><application>passwd</application> ist der &uuml;bliche Weg Ihr
<indexterm><primary><command>passwd</command></primary></indexterm>
<indexterm>
<primary>Accounts</primary>
<secondary>Passwort wechseln</secondary>
</indexterm>
<para><command>passwd</command> ist der &uuml;bliche Weg Ihr
eigenes Passwort als Benutzer zu &auml;ndern oder das Passwort eines
anderen Benutzers als Superuser.</para>
<note>
<para>Benutzer m&uuml;ssen ihr urspr&uuml;ngliches Passwort eingeben,
bevor sie es wechseln, um eine unauthorisierte Person davon
bevor sie es wechseln, um eine nicht autorisierte Person davon
abzuhalten ihr Passwort zu &auml;ndern, wenn der Benutzer gerade
nicht an seinem Ger&auml;t ist.</para>
</note>
<example>
<title>passwd</title>
<title>Wechseln des Passworts</title>
<screen>&prompt.user; <userinput>passwd</userinput>
Changing local password for jru.
@ -398,40 +678,75 @@ passwd: updating the database...
passwd: done</screen>
</example>
<example>
<title>Als Superuser das Passwort eines anderen Accounts
ver&auml;ndern</title>
<screen>&prompt.root; <userinput>passwd jru</userinput>
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: done</screen>
</example>
<note>
<para><command>yppasswd</command> ist nur ein Verweis zu
<command>passwd</command>. NIS wird automatisch
unterst&uuml;tzt, also ist es nicht notwendig, <literal>yp</literal>
vor dem Kommando einzugeben.</para>
<para>Wie bei <command>chpass</command> ist <command>yppasswd</command>
nur ein Verweis auf <command>passwd</command>. NIS wird von
jedem dieser Kommandos unterst&uuml;tzt.</para>
</note>
</sect2>
<sect2 id="users-pw">
<title><application>pw</application></title>
<indexterm><primary><command>pw</command></primary></indexterm>
<para><application>pw</application> ist ein Kommandozeilenprogramm, mit
dem man Accounts und Gruppen erstellen, entfernen, ver&auml;ndern
und anzeigen kann. Dieses Kommando dient als Schnittstelle zu den
Benutzer- und Gruppendateien des Systems. <command>pw</command>
besitzt eine Reihe m&auml;chtiger Kommandozeilenschalter, die es
f&uuml;r die Benutzung in Shell-Scripts geeignet machen, doch
finden neue Benutzer die Bedienung des Kommandos komplizierter, als
die der anderen hier vorgestellten Kommandos.</para>
</sect2>
</sect1>
<sect1 id="users-limiting">
<title>Benutzer einschr&auml;nken</title>
<indexterm><primary>Benutzer einschr&auml;nken</primary></indexterm>
<indexterm>
<primary>Accounts</primary>
<secondary>einschr&auml;nken</secondary>
</indexterm>
<para>Wenn Sie ein System mit mehreren Benutzern laufen lassen, ist es
wahrscheinlich, dass Sie nicht allen Benutzern vertrauen das System
nicht zu besch&auml;digen. FreeBSD bietet dem Systemadministrator
mehrere M&ouml;glichkeiten die System-Ressourcen einzuschr&auml;nken,
die ein einzelner Benutzer verwenden kann. Diese Limitierungen sind
in zwei Kategorien eingeteilt: Festplattenkontingente und andere
Ressourcenbeschr&auml;nkungen. Kontingente werden in
<!--
<xref linkend="quotas"> diskutiert.</para>
-->
einem noch nicht &uuml;bersetzen Kapitel diskutiert.</para>
Ressourcenbeschr&auml;nkungen.</para>
<indexterm><primary>Quotas</primary></indexterm>
<indexterm>
<primary>Benutzer einschr&auml;nken</primary>
<secondary>Quotas</secondary>
</indexterm>
<indexterm><primary>Festplatten Quotas</primary></indexterm>
<para>Festplatten-Kontingente sind ein Weg f&uuml;r den
Systemadministrator dem Dateisystem mitzuteilen, wieviel Speicher
ein Benutzer verwenden darf. Mit ihrer Hilfe kann man auch die
Gr&ouml;&szlig;e des von einem Benutzer verwendeten Platzes
&uuml;berpr&uuml;fen, ohne jedes mal neu berechnen zu m&uuml;ssen.
</para>
Kontingente werden in <xref linkend="quotas"> diskutiert.</para>
<indexterm>
<primary><filename>/etc/login.conf</filename></primary>
</indexterm>
<para>Die Login-Klassen werden in <filename>/etc/login.conf</filename>
definiert. Auf die pr&auml;zisen Semantiken gehen wir hier nicht
weiter ein, sie k&ouml;nnen jedoch in der &man.login.conf.5; manpage
weiter ein, sie k&ouml;nnen jedoch in &man.login.conf.5;
nachgelesen werden. Es ist ausreichend zu sagen, dass jeder
Benutzer einer Login-Klasse zugewiesen wird (standardm&auml;ssig
<literal>default</literal>) und dass jede Login-Klasse mit einem Satz
@ -448,7 +763,7 @@ passwd: done</screen>
Login-F&auml;higkeiten zweifach. Erstens gibt es f&uuml;r jede
Beschr&auml;nkung ein aktuelles und ein maximales Limit. Das
aktuelle Limit kann vom Benutzer oder einer Anwendung beliebig
bis zum maximalem Limit ver&auml;ndert werden. Letzteres kann
bis zum maximalen Limit ver&auml;ndert werden. Letzteres kann
der Benutzer nur heruntersetzen. Zweitens gelten die meisten
Ressourcenbeschr&auml;nkungen f&uuml;r jeden vom Benutzer
gestarteten Prozess, nicht f&uuml;r den Benutzer selbst.
@ -468,6 +783,11 @@ passwd: done</screen>
<term><literal>coredumpsize</literal></term>
<listitem>
<indexterm><primary>coredumpsize</primary></indexterm>
<indexterm>
<primary>Benutzer einschr&auml;nken</primary>
<secondary>coredumpsize</secondary>
</indexterm>
<para>Das Limit der Gr&ouml;&szlig;e einer core-Datei, die
von einem Programm generiert wird, unterliegt aus
offensichtlichen Gr&uuml;nden anderen Limits der
@ -478,8 +798,8 @@ passwd: done</screen>
core-Dateien nicht selbst erstellen, und sie oft nicht
l&ouml;schen, kann sie diese Option davor retten, dass
ihnen kein Festplattenspeicher mehr zur Verf&uuml;gung
steht, sollte ein grosses Programm (wie Emacs)
abst&uuml;rzen.</para>
steht, sollte ein grosses Programm, wie
<application>emacs</application>, abst&uuml;rzen.</para>
</listitem>
</varlistentry>
@ -487,6 +807,11 @@ passwd: done</screen>
<term><literal>cputime</literal></term>
<listitem>
<indexterm><primary>cputime</primary></indexterm>
<indexterm>
<primary>Benutzer einschr&auml;nken</primary>
<secondary>cputime</secondary>
</indexterm>
<para>Die maximale Rechenzeit, die ein Prozess eines Benutzers
verbrauchen darf. &Uuml;berschreitet der Prozess diesen Wert,
wird er vom Kernel beendet.
@ -508,13 +833,14 @@ passwd: done</screen>
<term><literal>filesize</literal></term>
<listitem>
<indexterm><primary>filesize</primary></indexterm>
<indexterm>
<primary>Benutzer einschr&auml;nken</primary>
<secondary>filesize</secondary>
</indexterm>
<para>Hiermit l&auml;sst sich die maximale gr&ouml;sse einer Datei
bestimmen, die der Benutzer besitzen darf. Im Gegensatz zu
<!--
<link linkend="quotas">Festplattenkontingenten</link> ist diese
-->
Festplattenkontingenten ist diese
<link linkend="quotas">Festplattenkontingenten</link> ist diese
Beschr&auml;nkung nur f&uuml;r jede einzelne Datei g&uuml;ltig
und nicht f&uuml;r den Platz, den alle Dateien eines Benutzers
verwenden.</para>
@ -525,11 +851,16 @@ Festplattenkontingenten ist diese
<term><literal>maxproc</literal></term>
<listitem>
<indexterm><primary>maxproc</primary></indexterm>
<indexterm>
<primary>Benutzer einschr&auml;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&uuml;rlich darf dieser
Wert nicht h&ouml;her sein als das System-Limit, das in
<literal>kern.maxproc</literal> angegeben ist. Vergessen
<varname>kern.maxproc</varname> angegeben ist. Vergessen
Sie auch nicht, dass ein zu kleiner Wert den Benutzer in
seiner Produktivit&auml;t einschr&auml;nken k&ouml;nnte;
es ist oft n&uuml;tzlich mehrfach eingeloggt zu sein, oder
@ -551,6 +882,11 @@ Festplattenkontingenten ist diese
<term><literal>memorylocked</literal></term>
<listitem>
<indexterm><primary>memorylocked</primary></indexterm>
<indexterm>
<primary>Benutzer einschr&auml;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,
@ -564,6 +900,11 @@ Festplattenkontingenten ist diese
<term><literal>memoryuse</literal></term>
<listitem>
<indexterm><primary>memoryuse</primary></indexterm>
<indexterm>
<primary>Benutzer einschr&auml;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&uuml;bergreifendes Limit f&uuml;r
@ -575,6 +916,11 @@ Festplattenkontingenten ist diese
<term><literal>openfiles</literal></term>
<listitem>
<indexterm><primary>openfiles</primary></indexterm>
<indexterm>
<primary>Benutzer einschr&auml;nken</primary>
<secondary>openfiles</secondary>
</indexterm>
<para>Mit diesem Limit l&auml;sst sich die maximale Anzahl
der von einem Prozess des Benutzers ge&ouml;ffneten Dateien
festlegen. In FreeBSD werden Dateien auch verwendet, um Sockets
@ -585,8 +931,8 @@ Festplattenkontingenten ist diese
</para>
</footnote>
darzustellen. Setzen Sie es deshalb nicht zu niedrig. Das
System-Limit ist im <literal>kern.maxfiles</literal> sysctl
definiert.</para>
System-Limit ist im <varname>kern.maxfiles</varname>
<command>sysctl</command> definiert.</para>
</listitem>
</varlistentry>
@ -594,6 +940,11 @@ Festplattenkontingenten ist diese
<term><literal>sbsize</literal></term>
<listitem>
<indexterm><primary>sbsize</primary></indexterm>
<indexterm>
<primary>Benutzer einschr&auml;nken</primary>
<secondary>sbsize</secondary>
</indexterm>
<para>Dieses Limit beschr&auml;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
@ -646,7 +997,7 @@ Festplattenkontingenten ist diese
<listitem>
<para>Bedenken Sie, dass viele Limits f&uuml;r einzelne Prozesse
gelten und nicht f&uuml;r den Benutzer selbst. Setzt man
zum Beispiel <literal>openfiles</literal> auf 50, kann jeder
zum Beispiel <varname>openfiles</varname> auf 50, kann jeder
Prozess des Benutzers bis zu 50 Dateien &ouml;ffnen. Dadurch
ist die maximale Anzahl von Dateien, die von einem Benutzer
ge&ouml;ffnet werden k&ouml;nnen, <literal>openfiles</literal>
@ -674,6 +1025,90 @@ Festplattenkontingenten ist diese
Lokalisierung
besprochen.</para>
</sect1>
<sect1 id="users-groups">
<title>Gruppen</title>
<indexterm><primary>Gruppen</primary></indexterm>
<indexterm>
<primary><filename>/etc/groups</filename></primary>
</indexterm>
<indexterm>
<primary>Accounts</primary>
<secondary>Gruppen</secondary>
</indexterm>
<para>Eine Gruppe ist einfach eine Zusammenfassung von Accounts.
Gruppen werden durch den Gruppennamen und die GID (group ID)
identifiziert. Der Kernel von FreeBSD (und den meisten anderen Unix
Systemen) entscheided anhand der UID und der Gruppenmitgliedschaft
eines Prozesses, ob er dem Prozess etwas erlaubt oder nicht. Im
Unterschied zur UID kann ein Prozess zu einer Reihe von Gruppen
geh&ouml;ren. Wenn jemand von der <quote>group ID</quote> eines
Benutzers oder Prozesses spricht, meint er damit meistens die erste
Gruppe der Gruppenliste.</para>
<para>Die Zuordnung von Gruppennamen zur GID steht in
<filename>/etc/group</filename>, einer Textdatei mit vier durch
Doppelpunkte getrennten Feldern. Im ersten Feld steht der
Gruppenname, das zweite enth&auml;lt ein verschl&uuml;sseltes
Passwort, das dritte gibt die GID an und das vierte besteht aus einer
Komma separierten Liste der Mitglieder der Gruppe. Diese Datei kann
einfach editiert werden (nat&uuml;rlich nur, wenn Sie dabei keine
Syntaxfehler machen). Eine ausf&uuml;hrliche Beschreibung der Syntax
dieser Datei finden Sie in &man.group.5;.</para>
<para>Wenn Sie <filename>/etc/group</filename> nicht h&auml;ndisch
editieren m&ouml;chten, k&ouml;nnen Sie &man.pw.8; zum Editieren
benutzen. Das folgende Beispiel zeigt das Hinzuf&uuml;gen einer
Gruppe mit dem Namen <groupname>teamtwo</groupname>:</para>
<example>
<title>Hinzuf&uuml;gen einer Gruppe mit &man.pw.8;</title>
<screen>&prompt.root; <userinput><command>pw</command> groupadd <groupname>teamtwo</groupname></userinput>
&prompt.root; <userinput><command>pw</command> groupshow <groupname>teamtwo</groupname></userinput>
teamtwo:*:1100:</screen>
</example>
<para>Die Zahl <literal>1100</literal> ist die GID der Gruppe
<groupname>teamtwo</groupname>. Momentan hat
<groupname>teamtwo</groupname> noch keine Mitglieder und ist daher
ziemlich nutzlos. Um das zu &auml;ndern, nehmen wir nun
<username>jru</username> in <groupname>teamtwo</groupname>
auf.</para>
<example>
<title>Ein Gruppenmitglied mit &man.pw.8; hinzuf&uuml;gen</title>
<screen>&prompt.root; <userinput><command>pw</command> groupmod <groupname>teamtwo</groupname> <option>-M</option> <username>jru</username></userinput>
&prompt.root; <userinput><command>pw</command> groupshow <groupname>teamtwo</groupname></userinput>
teamtwo:*:1100:jru</screen>
</example>
<para>Als Argument von <option>-M</option> geben Sie eine Komma
separierte Liste von Mitgliedern an, die Sie in die Gruppe aufnehmen
m&ouml;chten. Aus den vorherigen Abschnitten ist bekannt, dass die
Passwort-Datei ebenfalls eine Gruppe f&uuml;r jeden Benutzer
enth&auml;lt. Das System teilt dem Benutzer automatisch eine Gruppe
zu, die aber vom <command>groupshow</command> Kommando von &man.pw.8;
nicht angezeigt wird. Diese Information wird allerdings von
&man.id.1; und &auml;hnlichen Werkzeugen angezeigt. Das hei&szlig;t,
dass &man.pw.8; nur <filename>/etc/group</filename> manipuliert,
es wird nicht versuchen, zus&auml;tzliche Informationen aus
<filename>/etc/passwd</filename> zu lesen.</para>
<example>
<title>Mit &man.id.1; die Gruppenzugeh&ouml;rigkeit bestimmen</title>
<screen>&prompt.user; <userinput><command>id</command> <username>jru</username></userinput>
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)</screen>
</example>
<para>Wie Sie sehen, ist <username>jru</username> Mitglied von
<groupname>jru</groupname> und <groupname>teamtwo</groupname>.</para>
<para>Weitere Informationen entnehmen Sie bitte &man.pw.8;.</para>
</sect1>
</chapter>
<!--