464 lines
14 KiB
Groff
464 lines
14 KiB
Groff
'\" t
|
|
.\" Title: su
|
|
.\" Author: Julianne Frances Haugh
|
|
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
|
|
.\" Date: 25.05.2012
|
|
.\" Manual: Dienstprogramme f\(:ur Benutzer
|
|
.\" Source: shadow-utils 4.1.5.1
|
|
.\" Language: German
|
|
.\"
|
|
.TH "SU" "1" "25.05.2012" "shadow\-utils 4\&.1\&.5\&.1" "Dienstprogramme f\(:ur Benutzer"
|
|
.\" -----------------------------------------------------------------
|
|
.\" * Define some portability stuff
|
|
.\" -----------------------------------------------------------------
|
|
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.\" http://bugs.debian.org/507673
|
|
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
|
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.ie \n(.g .ds Aq \(aq
|
|
.el .ds Aq '
|
|
.\" -----------------------------------------------------------------
|
|
.\" * set default formatting
|
|
.\" -----------------------------------------------------------------
|
|
.\" disable hyphenation
|
|
.nh
|
|
.\" disable justification (adjust text to left margin only)
|
|
.ad l
|
|
.\" -----------------------------------------------------------------
|
|
.\" * MAIN CONTENT STARTS HERE *
|
|
.\" -----------------------------------------------------------------
|
|
.SH "NAME"
|
|
su \- \(:andert die Benutzer\-ID oder wechselt zu Root
|
|
.SH "\(:UBERSICHT"
|
|
.HP \w'\fBsu\fR\ 'u
|
|
\fBsu\fR [\fIOptionen\fR] [\fIBenutzername\fR]
|
|
.SH "BESCHREIBUNG"
|
|
.PP
|
|
Der Befehl
|
|
\fBsu\fR
|
|
dient dazu, w\(:ahrend einer Sitzung ein anderer Benutzer zu werden\&. Wenn
|
|
\fBsu\fR
|
|
ohne
|
|
\fBusername\fR
|
|
aufgerufen wird, wechselt es standardm\(:a\(ssig zu Root\&. Zus\(:atzlich kann das Argument
|
|
\fB\-\fR
|
|
angegeben werden\&. Damit wird eine Umgebung zur Verf\(:ugung gestellt, die der entspricht, die der Benutzer nach einer direkten Anmeldung erwartet\&.
|
|
.PP
|
|
Zus\(:atzliche Argumente k\(:onnen nach dem Benutzernamen angegeben werden\&. In diesem Fall werden sie an die Anmelde\-Shell des Benutzers weitergereicht\&. Insbesondere f\(:uhrt das Argument
|
|
\fB\-c\fR
|
|
dazu, dass das n\(:achste Argument von den meisten Interpretatoren als Befehl behandelt wird\&. Dieser Befehl wird von der Shell ausgef\(:uhrt, die in
|
|
/etc/passwd
|
|
f\(:ur den Zielbenutzer angegeben ist\&.
|
|
.PP
|
|
Sie k\(:onnen das Argument
|
|
\fB\-\-\fR
|
|
verwenden, um Optionen f\(:ur
|
|
\fBsu\fR
|
|
von Argumenten f\(:ur die Shell zu trennen\&.
|
|
.PP
|
|
Der Benutzer wird gegebenenfalls nach einem Passwort gefragt\&. Ung\(:ultige Passworteingaben werden eine Fehlermeldung erzeugen\&. Sowohl erfolgreiche als auch misslungene Versuche werden protokolliert, um Missbrauch des Systems zu entdecken\&.
|
|
.PP
|
|
Die aktuelle Umgebung wird an die neue Shell \(:ubergeben\&. Der Wert von
|
|
\fB$PATH\fR
|
|
wird f\(:ur normale Benutzer auf
|
|
/bin:/usr/bin
|
|
gesetzt, f\(:ur Root auf
|
|
/sbin:/bin:/usr/sbin:/usr/bin\&. Dieses Verhalten kann durch die Definition von
|
|
\fBENV_PATH\fR
|
|
und
|
|
\fBENV_SUPATH\fR
|
|
in
|
|
/etc/login\&.defs
|
|
ge\(:andert werden\&.
|
|
.PP
|
|
Eine Subsystem\-Anmeldung wird durch einen \(Fc*\(Fo als erstes Zeichen der Anmelde\-Shell gekennzeichnet\&. Das angegebene Home\-Verzeichnis wird als Wurzel f\(:ur das Dateisystem verwendet, auf welchem der Benutzer tats\(:achlich angemeldet ist\&.
|
|
.SH "OPTIONEN"
|
|
.PP
|
|
Die Optionen, die vom Befehl
|
|
\fBsu\fR
|
|
unterst\(:utzt werden, sind:
|
|
.PP
|
|
\fB\-c\fR, \fB\-\-command\fR\fIBEFEHL\fR
|
|
.RS 4
|
|
gibt einen Befehl an, der von der Shell mittels ihrer Option
|
|
\fB\-c\fR
|
|
ausgef\(:uhrt wird
|
|
.sp
|
|
Der ausgef\(:uhrte Befehl hat kein ihn steuerndes Terminal\&. Mit dieser Option k\(:onnen keine interaktiven Programme, die ein sie steuerndes TTY ben\(:otigen, ausgef\(:uhrt werden\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\fR, \fB\-l\fR, \fB\-\-login\fR
|
|
.RS 4
|
|
Eine Umgebung wird zur Verf\(:ugung gestellt, die der entspricht, die der Benutzer nach einer direkten Anmeldung erwartet\&.
|
|
.sp
|
|
Wenn
|
|
\fB\-\fR
|
|
verwendet wird, muss es als die letzte Option von
|
|
\fBsu\fR
|
|
angegeben werden\&. Die \(:ubrigen Formen ((\fB\-l\fR
|
|
und
|
|
\fB\-\-login\fR) unterliegen nicht dieser Beschr\(:ankung\&.
|
|
.RE
|
|
.PP
|
|
\fB\-s\fR, \fB\-\-shell\fR\fISHELL\fR
|
|
.RS 4
|
|
die Shell, die gestartet wird
|
|
.sp
|
|
Die aufgerufene Shell wird bestimmt durch (h\(:ochste Priorit\(:at zuerst):
|
|
.PP
|
|
.RS 4
|
|
die Shell, die mit \-\-shell angegeben wurde
|
|
.RE
|
|
.PP
|
|
.RS 4
|
|
Falls
|
|
\fB\-\-preserve\-environment\fR
|
|
verwendet wird, die Shell, die durch die Umgebungsvariable
|
|
\fB$SHELL\fR
|
|
festgelegt wird\&.
|
|
.RE
|
|
.PP
|
|
.RS 4
|
|
die Shell, die in
|
|
/etc/passwd
|
|
f\(:ur den Zielbenutzer angegeben ist
|
|
.RE
|
|
.PP
|
|
.RS 4
|
|
/bin/sh, falls durch die obigen Methoden keine Shell gefunden werden kann
|
|
.RE
|
|
.sp
|
|
Falls der Zielbenutzer eine beschr\(:ankte Shell hat (d\&.h\&. das Feld f\(:ur die Shell im Eintrag des Benutzers in
|
|
/etc/passwd
|
|
ist nicht in
|
|
/etc/shells) aufgef\(:uhrt), werden die Option
|
|
\fB\-\-shell\fR
|
|
und die Umgebungsvariable
|
|
\fB$SHELL\fR
|
|
nicht beachtet, sofern
|
|
\fBsu\fR
|
|
nicht von Root aufgerufen wird\&.
|
|
.RE
|
|
.PP
|
|
\fB\-m\fR, \fB\-p\fR, \fB\-\-preserve\-environment\fR
|
|
.RS 4
|
|
Erh\(:alt die aktuelle Umgebung mit Ausnahme von:
|
|
.PP
|
|
\fB$PATH\fR
|
|
.RS 4
|
|
auf den Ausgangswert entsprechend der Optionen
|
|
\fBENV_PATH\fR
|
|
oder
|
|
\fBENV_SUPATH\fR
|
|
in
|
|
/etc/login\&.defs
|
|
zur\(:ucksetzen (siehe unten);
|
|
.RE
|
|
.PP
|
|
\fB$IFS\fR
|
|
.RS 4
|
|
auf
|
|
\(Bq<space><tab><newline>\(lq
|
|
zur\(:ucksetzen, falls es ver\(:andert wurde
|
|
.RE
|
|
.sp
|
|
Falls der Zielbenutzer eine beschr\(:ankte Shell besitzt, hat diese Option keinen Effekt (sofern
|
|
\fBsu\fR
|
|
nicht von Root aufgerufen wird)\&.
|
|
.sp
|
|
Beachten Sie, dass Folgendes das Standardverhalten f\(:ur die Umgebung ist:
|
|
.PP
|
|
.RS 4
|
|
Die Umgebungsvariablen
|
|
\fB$HOME\fR,
|
|
\fB$SHELL\fR,
|
|
\fB$USER\fR,
|
|
\fB$LOGNAME\fR,
|
|
\fB$PATH\fR
|
|
und
|
|
\fB$IFS\fR
|
|
werden zur\(:uckgesetzt\&.
|
|
.RE
|
|
.PP
|
|
.RS 4
|
|
Falls nicht
|
|
\fB\-\-login\fR
|
|
verwendet wurde, wird die Umgebung mit der Ausnahme der genannten Variablen kopiert\&.
|
|
.RE
|
|
.PP
|
|
.RS 4
|
|
Falls
|
|
\fB\-\-login\fR
|
|
verwendet wurde, werden die Variablen
|
|
\fB$TERM\fR,
|
|
\fB$COLORTERM\fR,
|
|
\fB$DISPLAY\fR
|
|
und
|
|
\fB$XAUTHORITY\fR
|
|
\(:ubernommen, wenn ihnen ein Wert zugewiesen wurde\&.
|
|
.RE
|
|
.PP
|
|
.RS 4
|
|
Falls
|
|
\fB\-\-login\fR
|
|
verwendet wurde, werden die Umgebungsvariablen
|
|
\fB$TZ\fR,
|
|
\fB$HZ\fR
|
|
und
|
|
\fB$MAIL\fR
|
|
auf die in
|
|
/etc/login\&.defs
|
|
definierten Optionen
|
|
\fBENV_TZ\fR,
|
|
\fBENV_HZ\fR,
|
|
\fBMAIL_DIR\fR
|
|
und
|
|
\fBMAIL_FILE\fR
|
|
(siehe unten) gesetzt\&.
|
|
.RE
|
|
.PP
|
|
.RS 4
|
|
Wenn
|
|
\fB\-\-login\fR
|
|
verwendet wird, k\(:onnen andere Umgebungsvariablen mit der Datei
|
|
\fBENVIRON_FILE\fR
|
|
vergeben werden (siehe unten)\&.
|
|
.RE
|
|
.RE
|
|
.SH "WARNUNGEN"
|
|
.PP
|
|
Diese Version von
|
|
\fBsu\fR
|
|
hat viele Kompilierungsoptionen\&. Deren N\(:utzlichkeit h\(:angt von den Anforderungen der jeweiligen Umgebung ab\&.
|
|
.SH "KONFIGURATION"
|
|
.PP
|
|
Die folgenden Konfigurationsvariablen in
|
|
/etc/login\&.defs
|
|
beeinflussen das Verhalten dieses Werkzeugs:
|
|
.PP
|
|
\fBCONSOLE\fR (Zeichenkette)
|
|
.RS 4
|
|
Die Konfiguration erfolgt entweder \(:uber die Angabe des vollen Pfadnamens einer Datei, welche die Namen der Ger\(:ate enth\(:alt (eines pro Zeile), oder mit einer Liste der Ger\(:atenamen, die mit \(Fc:\(Fo getrennt sind\&. Root kann sich nur auf diesen Ger\(:aten anmelden\&.
|
|
.sp
|
|
Wenn es unkonfiguriert gelassen wird, kann sich Root auf jedem Ger\(:at anmelden\&.
|
|
.sp
|
|
Das Ger\(:at soll ohne vorangestelltes /dev/ angegeben werden\&.
|
|
.RE
|
|
.PP
|
|
\fBCONSOLE_GROUPS\fR (Zeichenkette)
|
|
.RS 4
|
|
Liste von Gruppen, deren Mitglied der Benutzer wird, wenn der sich auf der Konsole anmeldet, die mit dem Parameter CONSOLE festgelegt wird\&. Standardm\(:a\(ssig ist die Liste leer\&.
|
|
|
|
Seien Sie vorsichtig\&. Benutzer k\(:onnen dauerhaft Zugang zu den Gruppen erlangen, auch wenn sie nicht auf der Konsole angemeldet sind\&.
|
|
.RE
|
|
.PP
|
|
\fBDEFAULT_HOME\fR (boolesch)
|
|
.RS 4
|
|
Legt fest, ob ein Login erlaubt wird, wenn mit cd nicht in das Home\-Verzeichnis gewechselt werden kann\&. Standardm\(:a\(ssig wird dies nicht zugelassen\&.
|
|
.sp
|
|
Falls auf
|
|
\fIyes\fR
|
|
gesetzt, wird der Benutzer mit dem Wurzelverzeichnis (/) angemeldet, wenn mit cd nicht in sein Home\-Verzeichnis gewechselt werden kann\&.
|
|
.RE
|
|
.PP
|
|
\fBENV_HZ\fR (Zeichenkette)
|
|
.RS 4
|
|
Wenn vergeben, wird damit die Umgebungsvariable HZ definiert, wenn sich ein Benutzer anmeldet\&. Dem Wert muss ein
|
|
\fIHZ=\fR
|
|
vorangestellt werden\&. Ein \(:ublicher Wert bei Linux ist
|
|
\fIHZ=100\fR\&.
|
|
.RE
|
|
.PP
|
|
\fBENVIRON_FILE\fR (Zeichenkette)
|
|
.RS 4
|
|
Wenn diese Datei vorhanden ist, wird die Anmeldeumgebung aus ihr gelesen\&. Jede Zeile sollte die Form Name=Wert haben\&.
|
|
.sp
|
|
Zeilen, die mit einem # beginnen, werden als Kommentare behandelt und daher ignoriert\&.
|
|
.RE
|
|
.PP
|
|
\fBENV_PATH\fR (Zeichenkette)
|
|
.RS 4
|
|
Wenn gesetzt, wird damit die Umgebungsvariable PATH definiert, wenn sich ein normaler Benutzer anmeldet\&. Der Wert ist eine Liste, deren Eintr\(:age durch Doppelpunkte getrennt sind (zum Beispiel
|
|
\fI/bin:/usr/bin\fR)\&. Ihr kann ein
|
|
\fIPATH=\fR
|
|
vorangestellt werden\&. Der Standardwert ist
|
|
\fIPATH=/bin:/usr/bin\fR\&.
|
|
.RE
|
|
.PP
|
|
\fBENV_SUPATH\fR (Zeichenkette)
|
|
.RS 4
|
|
Wenn gesetzt, wird damit die Umgebungsvariable PATH definiert, wenn sich der Superuser anmeldet\&. Der Wert ist eine Liste, deren Eintr\(:age durch Doppelpunkte getrennt sind (zum Beispiel
|
|
\fI/sbin:/bin:/usr/sbin:/usr/bin\fR)\&. Ihr kann ein
|
|
\fIPATH=\fR
|
|
vorangestellt werden\&. Der Standardwert ist
|
|
\fIPATH=/sbin:/bin:/usr/sbin:/usr/bin\fR\&.
|
|
.RE
|
|
.PP
|
|
\fBENV_TZ\fR (Zeichenkette)
|
|
.RS 4
|
|
Wenn gesetzt, wird damit die Umgebungsvariable TZ definiert, wenn sich ein Benutzer anmeldet\&. Der Wert kann der Name der Zeitzone sein, dem
|
|
\fITZ=\fR
|
|
vorausgeht (zum Beispiel
|
|
\fITZ=CST6CDT\fR), oder der vollst\(:andige Pfad der Datei, welche die Konfiguration der Zeitzone enth\(:alt (zum Beispiel
|
|
/etc/tzname)\&.
|
|
.sp
|
|
Wenn ein vollst\(:andiger Pfadname angegeben wird, die Datei aber nicht existiert oder nicht lesbar ist, wird
|
|
\fITZ=CST6CDT\fR
|
|
verwendet\&.
|
|
.RE
|
|
.PP
|
|
\fBLOGIN_STRING\fR (Zeichenkette)
|
|
.RS 4
|
|
Diese Zeichenkette wird bei der Eingabeaufforderung des Passworts (Prompt) verwendet\&. Standardm\(:a\(ssig wird \(FcPassword: \(Fo oder eine \(:Ubersetzung davon benutzt\&. Wenn Sie diese Variable definieren, wird die Eingabeaufforderung nicht \(:ubersetzt\&.
|
|
.sp
|
|
Wenn die Zeichenkette ein
|
|
\fI%s\fR
|
|
enth\(:alt, wird dies durch den Benutzernamen ersetzt\&.
|
|
.RE
|
|
.PP
|
|
\fBMAIL_CHECK_ENAB\fR (boolesch)
|
|
.RS 4
|
|
aktiviert die Pr\(:ufung und Anzeige des Status der Mailbox bei der Anmeldung
|
|
.sp
|
|
Sie sollten dies abschalten, wenn schon die Startdateien der Shell die Mails pr\(:ufen (\(Fcmailx \-e\(Fo oder \(:ahnliches)\&.
|
|
.RE
|
|
.PP
|
|
\fBMAIL_DIR\fR (Zeichenkette)
|
|
.RS 4
|
|
Das Verzeichnis des Mail\-Spools\&. Diese Angabe wird ben\(:otigt, um die Mailbox zu bearbeiten, nachdem das entsprechende Benutzerkonto ver\(:andert oder gel\(:oscht wurde\&. Falls nicht angegeben, wird ein Standard verwendet, der beim Kompilieren festgelegt wurde\&.
|
|
.RE
|
|
.PP
|
|
\fBMAIL_FILE\fR (Zeichenkette)
|
|
.RS 4
|
|
Legt den Ort der Mail\-Spool\-Dateien eines Benutzers relativ zu seinem Home\-Verzeichnis fest\&.
|
|
.RE
|
|
.PP
|
|
Die Variablen
|
|
\fBMAIL_DIR\fR
|
|
und
|
|
\fBMAIL_FILE\fR
|
|
werden von
|
|
\fBuseradd\fR,
|
|
\fBusermod\fR
|
|
und
|
|
\fBuserdel\fR
|
|
verwendet, um den Mail\-Spool eines Benutzers zu erstellen, zu verschieben oder zu l\(:oschen\&.
|
|
.PP
|
|
Falls
|
|
\fBMAIL_CHECK_ENAB\fR
|
|
auf
|
|
\fIyes\fR
|
|
gesetzt ist, werden sie auch verwendet, um die Umgebungsvariable
|
|
\fBMAIL\fR
|
|
festzulegen\&.
|
|
.PP
|
|
\fBQUOTAS_ENAB\fR (boolesch)
|
|
.RS 4
|
|
aktiviert das Setzen von Resourcenbeschr\(:ankungen aus
|
|
/etc/limits
|
|
und von ulimit, umask und niceness aus dem gecos\-Feld des Benutzers von passwd
|
|
.RE
|
|
.PP
|
|
\fBSULOG_FILE\fR (Zeichenkette)
|
|
.RS 4
|
|
Wenn angegeben, wird jeder Aufruf von su in dieser Datei protokolliert\&.
|
|
.RE
|
|
.PP
|
|
\fBSU_NAME\fR (Zeichenkette)
|
|
.RS 4
|
|
Damit kann die Anzeige des Namens des Befehls festgelegt werden, wenn \(Fcsu \-\(Fo ausgef\(:uhrt wird\&. Wenn beispielsweise dies auf \(Fcsu\(Fo gesetzt wurde, zeigt \(Fcps\(Fo den Befehl als \(Fc\-su\(Fo an\&. Wenn es dagegen nicht vergeben wurde, wird \(Fcps\(Fo den Namen der Shell anzeigen, die ausgef\(:uhrt wird, also etwa \(Fc\-sh\(Fo\&.
|
|
.RE
|
|
.PP
|
|
\fBSU_WHEEL_ONLY\fR (boolesch)
|
|
.RS 4
|
|
Falls
|
|
\fIyes\fR, muss der Benutzer Mitglied der ersten Gruppe mit der GID 0 in
|
|
/etc/group
|
|
sein (auf den meisten Linux\-Systemen hei\(sst die
|
|
\fIroot\fR), um mit
|
|
\fBsu\fR
|
|
zu einem Konto mit der UID 0 wechseln zu k\(:onnen\&. Falls die Gruppe nicht existiert oder keine Mitglieder hat, kann niemand mittels
|
|
\fBsu\fR
|
|
zur UID 0 wechseln\&.
|
|
.RE
|
|
.PP
|
|
\fBSYSLOG_SU_ENAB\fR (boolesch)
|
|
.RS 4
|
|
aktiviert das Protokollieren der Aktivit\(:aten von
|
|
\fBsu\fR
|
|
in \(Fcsyslog\(Fo neben der Protokollierung in der sulog\-Datei
|
|
.RE
|
|
.PP
|
|
\fBUSERGROUPS_ENAB\fR (boolesch)
|
|
.RS 4
|
|
Erlaubt Benutzern, die nicht Root sind, die Umask\-Gruppen\-Bits auf ihre Umask\-Bits zu setzen (Beispiel: 022 \-> 002, 077 \-> 007), falls die UID mit der GID identisch ist sowie der Benutzername mit dem Gruppennamen \(:ubereinstimmt\&.
|
|
.sp
|
|
Wenn der Wert
|
|
\fIyes\fR
|
|
ist, wird
|
|
\fBuserdel\fR
|
|
die Gruppe des Benutzers entfernen, falls sie keine Mitglieder mehr hat, und
|
|
\fBuseradd\fR
|
|
wird standardm\(:a\(ssig eine Gruppe mit dem Namen des Benutzers erstellen\&.
|
|
.RE
|
|
.SH "DATEIEN"
|
|
.PP
|
|
/etc/passwd
|
|
.RS 4
|
|
Informationen zu den Benutzerkonten
|
|
.RE
|
|
.PP
|
|
/etc/shadow
|
|
.RS 4
|
|
verschl\(:usselte Informationen zu den Benutzerkonten
|
|
.RE
|
|
.PP
|
|
/etc/login\&.defs
|
|
.RS 4
|
|
Konfiguration der Shadow\-Passwort\-Werkzeugsammlung
|
|
.RE
|
|
.SH "R\(:UCKGABEWERTE"
|
|
.PP
|
|
Wenn
|
|
\fBsu\fR
|
|
erfolgreich ausgef\(:uhrt wird, gibt es den R\(:uckgabewert des mit ihm ausgef\(:uhrten Befehls zur\(:uck\&.
|
|
.PP
|
|
Wenn dieser Befehl mit einem Signal beendet wurde, gibt
|
|
\fBsu\fR
|
|
die Nummer des Signals plus 128 zur\(:uck\&.
|
|
.PP
|
|
Wenn
|
|
\fBsu\fR
|
|
den Befehl mit kill beenden musste (weil er der Aufforderung, sich zu beenden, nicht rechtzeitig nachgekommen ist), gibt es 255 zur\(:uck\&.
|
|
.PP
|
|
Einige R\(:uckgabewerte von
|
|
\fBsu\fR
|
|
sind unabh\(:angig von dem ausgef\(:uhrten Befehl:
|
|
.PP
|
|
\fI0\fR
|
|
.RS 4
|
|
Erfolg (nur bei
|
|
\fB\-\-help\fR)
|
|
.RE
|
|
.PP
|
|
\fI1\fR
|
|
.RS 4
|
|
System\- oder Anmeldefehler
|
|
.RE
|
|
.PP
|
|
\fI126\fR
|
|
.RS 4
|
|
Der angegebene Befehl konnte nicht gefunden werden\&.
|
|
.RE
|
|
.PP
|
|
\fI127\fR
|
|
.RS 4
|
|
Der angegebene Befehl konnte nicht ausgef\(:uhrt werden\&.
|
|
.RE
|
|
.SH "SIEHE AUCH"
|
|
.PP
|
|
\fBlogin\fR(1),
|
|
\fBlogin.defs\fR(5),
|
|
\fBsg\fR(1),
|
|
\fBsh\fR(1)\&.
|