.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992 .\" and Copyright (c) 1998 Andries Brouwer (aeb@cwi.nl) .\" and Copyright (c) 2006, 2007, 2008, 2014 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified by Michael Haardt .\" Modified 1993-07-21 by Rik Faith .\" Modified 1996-07-09 by Andries Brouwer .\" Modified 1996-11-06 by Eric S. Raymond .\" Modified 1997-05-18 by Michael Haardt .\" Modified 2004-06-23 by Michael Kerrisk .\" 2007-07-08, mtk, added an example program; updated SYNOPSIS .\" 2008-05-08, mtk, Describe rules governing ownership of new files .\" (bsdgroups versus sysvgroups, and the effect of the parent .\" directory's set-group-ID mode bit). .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH chown 2 "3. Mai 2023" "Linux man\-pages 6.05.01" .SH BEZEICHNUNG chown, fchown, lchown, fchownat \- Besitzverhältnisse einer Datei ändern .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP .PP \fBint chown(const char *\fP\fIPfadname\fP\fB, uid_t \fP\fIEigentümer\fP\fB, gid_t \fP\fIGruppe\fP\fB);\fP \fBint fchown(int \fP\fIfd\fP\fB, uid_t \fP\fIEigentümer\fP\fB, gid_t \fP\fIGruppe\fP\fB);\fP \fBint lchown(const char *\fP\fIPfadname\fP\fB, uid_t \fP\fIEigentümer\fP\fB, gid_t \fP\fIGruppe\fP\fB);\fP .PP \fB#include \fP/* Definition der AT_*\-Konstanten */ \fB#include \fP .PP \fBint fchownat(int \fP\fIVerzdd\fP\fB, const char *\fP\fIPfadname\fP\fB,\fP \fB uid_t \fP\fIEigentümer\fP\fB, gid_t \fP\fIGruppe\fP\fB, int \fP\fISchalter\fP\fB);\fP .fi .PP .RS -4 Mit Glibc erforderliche Feature\-Test\-Makros (siehe \fBfeature_test_macros\fP(7)): .RE .PP \fBfchown\fP(), \fBlchown\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED /* Seit Glibc 2.12: */ _POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 500 || /* Glibc <= 2.19: */ _BSD_SOURCE .fi .PP \fBfchownat\fP(): .nf Seit Glibc 2.10: _POSIX_C_SOURCE >= 200809L Vor Glibc 2.10: _ATFILE_SOURCE .fi .SH BESCHREIBUNG Diese Systemaufrufe ändern den Eigentümer und die Gruppe einer Datei. Die Systemaufrufe \fBfchown\fP() und \fBlchown\fP() unterscheiden sich nur in der Angabe der Datei: .IP \[bu] 3 \fBchown\fP() ändert die Besitzverhältnisse der von \fIPfadname\fP angegebenen Datei. Falls das ein symbolischer Link ist, wird er dereferenziert. .IP \[bu] \fBfchown\fP() ändert die Besitzverhältnisse der Datei, die über den offenen Dateideskriptor \fIfd\fP angegeben wird. .IP \[bu] \fBlchown\fP() ist wie \fBchown\fP(), dereferenziert aber keine symbolischen Links. .PP Nur ein privilegierter Prozess (Linux: verfügt über die \fBCAP_CHOWN\fP\-Capability) kann den Eigentümer einer Datei ändern. Der Eigentümer einer Datei kann die Gruppenzugehörigkeit der Datei in jede Gruppe ändern, der er selber angehört. Ein privilegierter Prozess (Linux: mit \fBCAP_SHOWN\fP) kann die Gruppenzugehörigkeit beliebig ändern. .PP Falls \fIEigentümer\fP oder \fIGruppe\fP als \-1 übergeben werden, dann wird diese ID nicht geändert. .PP .\" In Linux 2.0 kernels, superuser was like everyone else .\" In Linux 2.2, up to Linux 2.2.12, these bits were not cleared for superuser. .\" Since Linux 2.2.13, superuser is once more like everyone else. Wird der Eigentümer oder die Gruppe einer ausführbaren Datei von einem nicht privilegierten Nutzer geändert, werden die Modus\-Bits \fBS_ISUID\fP und \fBS_ISGID\fP gelöscht. \fBPOSIX\fP legt nicht fest, ob dies auch dann geschehen sollte, wenn Root das \fBchown\fP() durchführt. Das Verhalten von Linux ist in diesem Falle abhängig von der Kernel\-Version; seit Linux 2.2.13 wird root wie jeder andere Benutzer behandelt. Falls die Datei für die Gruppe nicht ausführbar ist (d.h. eine, für die das \fBS_IXGRP\fP\-Bit nicht gesetzt ist), zeigt das \fBS_ISGID\fP\-Bit verbindliche Sperren (mandatory locks) für die Datei an und wird nicht durch ein \fBchown\fP() gelöscht. .PP .\" Wenn der Eigentümer oder die Gruppe einer Programmdatei (durch igendeinen Benutzer) geändert werden, werden alle Capability\-Mengen für diese Datei zurückgesetzt. .SS fchownat() Der Systemaufruf \fBfchownat\fP() funktioniert genauso wie \fBchown\fP, außer den hier beschriebenen Unterschieden. .PP Falls der in \fIPfadname\fP übergebene Pfadname relativ ist wird er als relativ zu dem im Dateideskriptor \fIVerzdd\fP referenzierten Verzeichnis interpretiert (statt relativ zum aktuellen Arbeitsverzeichnis des aufrufenden Prozesses, wie es bei \fBchown\fP() für einen relativen Pfadnamen erfolgt). .PP Falls \fIPfadname\fP relativ ist und \fIVerzdd\fP den besonderen Wert \fBAT_FDCWD\fP annimmt wird \fIPfadname\fP als relativ zum aktuellen Arbeitsverzeichnis des aufrufenden Prozesses interpretiert (wie \fBchown\fP()). .PP Falls \fIPfadname\fP absolut ist, wird \fIVerzdd\fP ignoriert. .PP Das \fISchalter\fP\-Argument ist eine Bitmaske, die durch bitweises ODER null oder mehr der folgenden Werte enthält: .TP \fBAT_EMPTY_PATH\fP (seit Linux 2.6.39) .\" commit 65cfc6722361570bfe255698d9cd4dccaf47570d .\" Before glibc 2.16, defining _ATFILE_SOURCE sufficed Falls \fIPfadname\fP eine leere Zeichenkette ist, wird auf der durch \fIVerzdd\fP referenzierten Datei gearbeitet (die mittels des Schalters \fBO_PATH\fP von \fBopen\fP(2) erlangt worden sein kann). In diesem Fall kann sich \fIVerzdd\fP auf jeden Dateityp beziehen, nicht nur ein Verzeichnis. Falls \fIVerzdd\fP \fBAT_FDCWD\fP ist, agiert der Aufruf auf dem aktuellen Arbeitsverzeichnis. Dieser Schalter ist Linux\-spezifisch; definieren Sie \fB_GNU_SOURCE\fP, um seine Definition zu erlangen. .TP \fBAT_SYMLINK_NOFOLLOW\fP Wenn \fIpathanme\fP ein symbolischer Link ist, wird er nicht dereferenziert: es wird stattdessen mit dem Link selbst gearbeitet, wie bei \fBlchown\fP(). In der Voreinstellung dereferenziert \fBfchownat\fP() symbolische Links, wie \fBchown\fP(). .PP Lesen Sie \fBopenat\fP(2) für eine Beschreibung der Notwendigkeit von \fBfchownat\fP(). .SH RÜCKGABEWERT Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird \-1 zurückgegeben und \fIerrno\fP gesetzt, um den Fehler anzuzeigen. .SH FEHLER Je nach Dateisystem können andere als die unten aufgeführten Fehler zurückgegeben werden. .PP Die allgemeineren Fehler von \fBfchown\fP() sind im Folgenden aufgeführt: .TP \fBEACCES\fP Eine Komponente des Pfad\-Präfix darf nicht durchsucht werden. (Siehe auch \fBpath_resolution\fP(7).) .TP \fBEBADF\fP (\fBfchown\fP()) \fIdd\fP ist kein zulässiger offener Dateideskriptor. .TP \fBEBADF\fP (\fBfchownat\fP()) \fIPfadname\fP ist relativ, aber \fIVerzdd\fP ist weder \fBAT_FDCWD\fP noch ein gültiger Dateideskriptor. .TP \fBEFAULT\fP \fIPfadname\fP zeigt aus dem für Sie zugänglichen Adressraum heraus. .TP \fBEINVAL\fP (\fBfchownat\fP()) Unzulässiger Schalter in \fISchalter\fP angegeben. .TP \fBEIO\fP (\fBfchown\fP()) Bei der Bearbeitung des Inodes trat ein system\-/hardwarenaher E/A\-Fehler (engl. I/O) auf. .TP \fBELOOP\fP Bei der Auflösung von \fIPfadname\fP wurden zu viele symbolische Links gefunden. .TP \fBENAMETOOLONG\fP \fIPfadname\fP ist zu lang. .TP \fBENOENT\fP Die Datei existiert nicht. .TP \fBENOMEM\fP Es war nicht genügend Kernelspeicher verfügbar. .TP \fBENOTDIR\fP Eine Komponente des Pfad\-Präfixes ist kein Verzeichnis. .TP \fBENOTDIR\fP (\fBfchownat\fP()) \fIPfadname\fP ist relativ und \fIVerzdd\fP ist ein Dateideskriptor, der sich auf eine Datei bezieht, die kein Verzeichnis ist. .TP \fBEPERM\fP Der aufrufende Prozess hatte nicht die benötigten Rechte (siehe oben), um den Eigentümer und/oder die Gruppe zu ändern. .TP \fBEPERM\fP Die Datei ist als unveränderlich oder nur\-anhängbar markiert (siehe \fBioctl_iflags\fP(2)). .TP \fBEROFS\fP Die angegebene Datei befindet sich auf einem nur lesbaren (read\-only) Dateisystem. .SH VERSIONEN .\" chown(): .\" SVr4 documents EINVAL, EINTR, ENOLINK and EMULTIHOP returns, but no .\" ENOMEM. POSIX.1 does not document ENOMEM or ELOOP error conditions. .\" fchown(): .\" SVr4 documents additional EINVAL, EIO, EINTR, and ENOLINK .\" error conditions. Die Version aus 4.4BSD kann nur vom Superuser verwendet werden (d.h. normale Benutzer können keine Dateien weggeben). .SH STANDARDS POSIX.1\-2008. .SH GESCHICHTE .TP \fBchown\fP() .TQ \fBfchown\fP() .TQ \fBlchown\fP() 4.4BSD, SVr4, POSIX.1\-2001. .TP \fBfchownat\fP() POSIX.1\-2008. Linux 2.6.16, Glibc 2.4. .SH ANMERKUNGEN .SS "Eigentümerschaft neuer Dateien" Wenn eine neue Datei erzeugt wird (zum Beispiel durch \fBopen\fP(2) oder \fBmkdir\fP(2)), wird der Eigentümer der gleiche wie die Dateisystem\-Benutzer\-ID des erzeugenden Prozesses. Die Gruppe der Datei hängt von einer Reihe von Faktoren ab, einschließlich der Art des Dateisystems, den beim Einhängen des Dateisystems verwendeten Optionen und der (Nicht\-) Aktivierung des Set\-Group\-ID\-Modusbits für das Elternverzeichnis. Falls das Dateisystem die Optionen \fB\-o\ grpid\fP (oder synonym \fB\-o\ bsdgroups\fP) und \fB\-o \nogrpid\fP (oder synonym \fB\-o\ sysvgroups\fP) von \fBmount\fP(8) unterstützt, dann sind die Vorschriften wie folgt: .IP \[bu] 3 Falls das Dateisystem mit \fB\-o\ grpid\fP eingehängt wurde, wird die Gruppe der neuen Datei vom Elternverzeichnis übernommen. .IP \[bu] Falls das Dateisystem mit \fB\-o\ nogrpid\fP eingehängt wurde und das Set\-Group\-ID\-Bit wurde für das Elternverzeichnis deaktiviert, wird die Gruppe einer neuen Datei auf die Dateisystem\-GID des Prozesses gesetzt. .IP \[bu] Falls das Dateisystem mit \fB\-o\ nogrpid\fP eingehängt wurde und das Set\-Group\-ID\-Bit wurde für das Elternverzeichnis aktiviert, wird die Gruppe einer neuen Datei vom Elternverzeichnis übernommen. .PP Unter Linux 4.12 werden die Einhängeoptionen \fB\-o\ grpid\fP und \fB\-o\ nogrpid\fP von ext2, ext3, ext4 und XFS unterstützt. Dateisysteme, die diese Optionen nicht unterstützen, folgen den \fB\-o\ nogrpid\fP\-Regeln. .SS "Anmerkungen zur Glibc" Mit älteren Kernels, in denen \fBfchownat\fP() nicht verfügbar ist, weicht die Glibc\-Wrapper\-Funktion auf \fBchown\fP() und \fBlchown\fP() aus. Wenn \fIPfadname\fP ein relativer Pfadname ist, dann konstruiert die Glibc einen Pfadnamen, der auf jenem symbolischen Link in \fI/proc/self/fd\fP, der dem Argument \fIVerzdd\fP entspricht. .SS NFS Die Semantik von \fBchown\fP() wird auf NFS\-Dateisystemen mit aktiviertem UID\-Mapping bewusst verletzt. Außerdem wird bei allen Systemaufrufen, die auf den Dateiinhalt zugreifen, die Semantik verletzt, da \fBchown\fP() einen sofortigen Entzug des Zugriffs bei bereits geöffneten Dateien bewirken kann. Zwischenspeicherung (Caching) seitens des Clients kann zu einer Verzögerung zwischen dem Zeitpunkt der Änderung der Besitzverhältnisse, um einem Benutzer Zugriff zu ermöglichen, und dem Zeitpunkt, zu dem er auf anderen Clients tatsächlich zugreifen kann, führen. .SS "Geschichtliche Details" Die ursprünglichen Linux\-Systemaufrufe \fBchown\fP(), \fBfchown\fP() und \fBlchown\fP() unterstützten nur 16\-Bit\-Benutzer\- und Gruppenkennungen. Anschließend fügte Linux 2.4 \fBchown32\fP(), \fBfchown32\fP() und \fBlchown32\fP() zur Unterstützung von 32\-Bit\-Kennungen hinzu. Die Glibc\-Wrapper\-Funktionen \fBchown\fP(), \fBfchown\fP() und \fBlchown\fP() gehen transparent mit den Variationen zwischen den Kernel\-Versionen um. .PP Vor Linux 2.1.81 (außer 2.1.46) folgte \fBchown\fP() symbolischen Links nicht. Seit Linux 2.1.81 folgt \fBchown\fP() symbolischen Links und es gibt einen neuen Systemaufruf \fBlchown\fP(), der symbolischen Links nicht folgt. Ab Linux 2.1.86 hat dieser neue Aufruf (der die gleiche Semantik wie das alte \fBchown\fP() hat) die gleiche Systemaufruf\-Nummer (syscall number) und \fBchown\fP() erhielt die neu eingeführte Nummer. .SH BEISPIELE Das folgende Programm ändert den Eigentümer der Datei im zweiten Befehlszeilen\-Argument auf den Wert, der als erstes Befehlszeilen\-Argument angegeben wird. Der neue Besitzer kann entweder als numerische Benutzerkennung oder als Benutzername (die mittels \fBgetpwnam\fP(3) durch einen Suchlauf in der System\-Passwortdatei in eine Benutzerkennung umgewandelt wird) angegeben werden. .SS Programmquelltext .\" SRC BEGIN (chown.c) .EX #include #include #include #include \& int main(int argc, char *argv[]) { char *endptr; uid_t uid; struct passwd *pwd; \& if (argc != 3 || argv[1][0] == \[aq]\e0\[aq]) { fprintf(stderr, "%s \en", argv[0]); exit(EXIT_FAILURE); } \& uid = strtol(argv[1], &endptr, 10); /* Eine nummerische Zeichenkette erlauben */ \& if (*endptr != \[aq]\e0\[aq]) { /* War keine reine nummerische Zeichenkette */ pwd = getpwnam(argv[1]); /* Versuchen, eine UID für den Benutzernamen zu erhalten */ if (pwd == NULL) { perror("getpwnam"); exit(EXIT_FAILURE); } \& uid = pwd\->pw_uid; } \& if (chown(argv[2], uid, \-1) == \-1) { perror("chown"); exit(EXIT_FAILURE); } \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "SIEHE AUCH" \fBchgrp\fP(1), \fBchown\fP(1), \fBchmod\fP(2), \fBflock\fP(2), \fBpath_resolution\fP(7), \fBsymlink\fP(7) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Florian Jenn , Martin Eberhard Schauer , Mario Blättermann , Dr. Tobias Quathamer und Helge Kreutzmann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .