tail head cat sleep
QR code linking to this page

Manpage  — CHOWN

BEZEICHNUNG

chown, fchown, lchown - Besitzverhältnisse einer Datei ändern

INHALT

ÜBERSICHT

#include <sys/types.h>
#include <unistd.h>

int chown(const char *path, uid_t owner, gid_t group);
int fchown(int fd, uid_t owner, gid_t group);
int lchown(const char *path, uid_t owner, gid_t group);

BESCHREIBUNG

Die Besitzverhältnisse der Datei, die durch path bzw. fd gegeben ist, werden geändert: neuer Eigentümer ist owner, neue Gruppe ist group. Nur der Super-User 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. Der Super-User kann die Gruppenzugehörigkeit beliebig ändern.

Wird als owner oder group -1 übergeben, wird die entsprechende ID nicht geändert.

Werden Eigentümer oder Gruppe einer ausführbaren Datei von einem Nicht-Super-User geändert, werden die Modus-Bits S_ISUID und S_ISGID gelöscht. POSIX legt nicht fest, ob dies auch dann geschehen sollte, wenn der Super-User chown durchführt. Das Verhalten von Linux ist in diesem Falle abhängig von der Kernelversion. Ist die Datei nicht ausführbar (d.h. das S_IXGRP Bit ist gelöscht), bedeutet ein gesetztes S_ISGID Bit verbindliche Sperren (mandatory locks) für die Datei. Dieses Bit wird dann von chown nicht geändert.

RÜCKGABEWERT

Bei Erfolg gibt chown Null zurück. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

Die häufigsten Fehler für chown sind unten aufgeführt. Je nach Dateisystem können andere Fehler zurückgegeben werden.
EPERM Die effektive UID (Benutzer ID) entspricht nicht dem Eigentümer der Datei und ist auch nicht Null (d.h. Super-User). EPERM kann auch anzeigen, daß Eigentümer (owner) oder Gruppe (group) falsch angegeben wurden.
EROFS Die angegebene Datei liegt auf einem schreibgeschützten (read-only) Dateisystem.
EFAULT path zeigt auf eine Adresse außerhalb des gültigen Adreßraums.
ENAMETOOLONG
  path ist zu lang.
ENOENT Die Datei ist nicht vorhanden.
ENOMEM Es war nicht ausreichend Kernel-Speicher verfügbar.
ENOTDIR Eine Komponente im Verzeichnisteil des Pfades (d.i. der vordere Teil bis zum Dateinamen ausschließlich) ist kein Verzeichnis.
EACCES Die Berechtigung zum Durchsuchen eines Verzeichnisses im Pfad ist nicht gegeben.
ELOOP Es wurden zu viele symbolische Links beim Auflösen von path gefunden.
Folgende Fehler können von fchown zurückgegeben werden:
EBADF Der Dateideskriptor fd ist ungültig.
ENOENT Siehe oben.
EPERM Siehe oben.
EROFS Siehe oben.
EIO Ein (low-level) Ein-/Ausgabe-Fehler ist während der Änderung des Inodes aufgetreten.

ANMERKUNGEN

In Linux-Versionen vor 2.1.81 (außer 2.1.46) folgte chown nicht symbolischen Links. Ab Linux 2.1.81 folgt chown symbolischen Links und es gibt einen neuen Systemaufruf lchown, der symbolischen Links nicht folgt. Ab Linux 2.1.86 hat dieser neue Aufruf (der die gleiche Semantik wie das alte chown besitzt) die gleiche Systemaufruf-Nummer (syscall number) und chown erhielt die neu eingeführte Nummer.

Der Prototyp für fchown ist nur dann verfügbar, wenn __USE_BSD definiert ist.

KONFORM ZU

chown ist konform zu SVr4, SVID, POSIX und X/OPEN. Die 4.4BSD-Version kann nur vom Super-User benutzt werden (d.h. daß normale Benutzer keine Dateien abgeben können). SVr4 dokumentiert die Fehler EINVAL, EINTR, ENOLINK und EMULTIHOP, aber nicht ENOMEM. POSIX.1 dokumentiert nicht die Fehler ENOMEM und ELOOP.

Der fchown-Aufruf ist konform zu 4.4BSD und SVr4. SVr4 dokumentiert zusätzlich die Fehler EINVAL, EIO, EINTR und ENOLINK.

EINSCHRÄNKUNGEN

Die Semantik von chown() wird auf NFS-Dateisystemen mit aktiviertem UID-mapping (Umsetzung der Benutzerkennungen zwischen verschiedenen Rechnern) bewußt verletzt. Außerdem wird bei allen Systemaufrufen, die auf den Dateiinhalt zugreifen, die Semantik verletzt, da chown() 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.

SIEHE AUCH

chmod(2), flock(2) [Englisch].

23. Mai 2000 CHOWN (2) Linux 2.1.81

tail head cat sleep
QR code linking to this page


Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.

With features like these, who needs bugs?
— Henry Spencer