.\" Hey Emacs! This file is -*- nroff -*- source. .\" .\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992 .\" Copyright (c) 1998 Andries Brouwer (aeb@cwi.nl) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Modified by Michael Haardt .\" Modified Wed Jul 21 21:53:01 1993 by Rik Faith .\" Modified Tue Jul 9 13:59:51 1996 by Andries Brouwer .\" Modified Wed Nov 6 03:49:07 1996 by Eric S. Raymond .\" Modified Sun May 18 10:34:09 1997 by Michael Haardt .\" Translated into German Tue May 23 22:54:37 2000 by Florian Jenn (jennf@tu-cottbus.de) .\" Minor modifications Tue Jan 16 00:14:32 2001 by Florian Jenn (jennf@tu-cottbus.de) .\" .TH CHOWN 2 "23. Mai 2000" "Linux 2.1.81" "Systemaufrufe" .SH BEZEICHNUNG chown, fchown, lchown \- Besitzverhältnisse einer Datei ändern .SH "ÜBERSICHT" .B #include .br .B #include .sp .BI "int chown(const char *" path ", uid_t " owner ", gid_t " group ); .br .BI "int fchown(int " fd ", uid_t " owner ", gid_t " group ); .br .BI "int lchown(const char *" path ", uid_t " owner ", gid_t " group ); .SH BESCHREIBUNG Die Besitzverhältnisse der Datei, die durch .I path bzw. .I fd gegeben ist, werden geändert: neuer Eigentümer ist .IR owner , neue Gruppe ist .IR 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. .PP Wird als .I owner oder .I group \|\-1 übergeben, wird die entsprechende .SM ID nicht geändert. .PP Werden Eigentümer oder Gruppe einer ausführbaren Datei von einem Nicht-Super-User geändert, werden die Modus-Bits .SM S_ISUID und .SM S_ISGID gelöscht. .SM POSIX legt nicht fest, ob dies auch dann geschehen sollte, wenn der Super-User .B 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 .SM S_IXGRP Bit ist gelöscht), bedeutet ein gesetztes .SM S_ISGID Bit verbindliche Sperren (mandatory locks) für die Datei. Dieses Bit wird dann von .B chown nicht geändert. .SH "RÜCKGABEWERT" Bei Erfolg gibt .B chown Null zurück. Bei einem Fehler wird \-1 zurückgegeben und .I errno entsprechend gesetzt. .SH FEHLER Die häufigsten Fehler für .B chown sind unten aufgeführt. Je nach Dateisystem können andere Fehler zurückgegeben werden. .TP 0.8i .SB EPERM Die effektive .SM UID (Benutzer ID) entspricht nicht dem Eigentümer der Datei und ist auch nicht Null (d.\|h. Super-User). .SM EPERM kann auch anzeigen, dass Eigentümer .RI ( owner ) oder Gruppe .RI ( group ) falsch angegeben wurden. .TP .SB EROFS Die angegebene Datei liegt auf einem schreibgeschützten (read-only) Dateisystem. .TP .SB EFAULT .I path zeigt auf eine Adresse außerhalb des gültigen Adressraums. .TP .SB ENAMETOOLONG .I path ist zu lang. .TP .SB ENOENT Die Datei ist nicht vorhanden. .TP .SB ENOMEM Es war nicht ausreichend Kernel-Speicher verfügbar. .TP .SB ENOTDIR Eine Komponente im Verzeichnisteil des Pfades (d.\|i. der vordere Teil bis zum Dateinamen ausschließlich) ist kein Verzeichnis. .TP .SB EACCES Die Berechtigung zum Durchsuchen eines Verzeichnisses im Pfad ist nicht gegeben. .TP .SB ELOOP Es wurden zu viele symbolische Links beim Auflösen von .I path gefunden. .PP Folgende Fehler können von .B fchown zurückgegeben werden: .TP 0.8i .SB EBADF Der Dateideskriptor .I fd ist ungültig. .TP .SB ENOENT Siehe oben. .TP .SB EPERM Siehe oben. .TP .SB EROFS Siehe oben. .TP .SB EIO Ein (low-level) Ein-/Ausgabe-Fehler ist während der Änderung des Inodes aufgetreten. .SH ANMERKUNGEN In Linux-Versionen vor 2.1.81 (außer 2.1.46) folgte .B chown nicht symbolischen Links. Ab Linux 2.1.81 folgt .B chown symbolischen Links und es gibt einen neuen Systemaufruf .BR lchown, der symbolischen Links nicht folgt. Ab Linux 2.1.86 hat dieser neue Aufruf (der die gleiche Semantik wie das alte .B chown besitzt) die gleiche Systemaufruf-Nummer (syscall number) und .B chown erhielt die neu eingeführte Nummer. .LP Der Prototyp für .B fchown ist nur dann verfügbar, wenn .SB _\^_USE_BSD definiert ist. .SH "KONFORM ZU" .B chown ist konform zu SVr4, \s-1SVID\s+1, \s-1POSIX\s+1 und \s-1X/OPEN\s+1. Die 4.4\s-1BSD\s+1-Version kann nur vom Super-User benutzt werden (d.\|h. dass normale Benutzer keine Dateien abgeben können). SVr4 dokumentiert die Fehler \s-1EINVAL\s+1, \s-1EINTR\s+1, \s-1ENOLINK\s+1 und \s-1EMULTIHOP\s+1, aber nicht \s-1ENOMEM\s+1. \s-1POSIX\s+1.1 dokumentiert nicht die Fehler \s-1ENOMEM\s+1 und \s-1ELOOP\s+1. .PP Der .BR fchown -Aufruf ist konform zu 4.4\s-1BSD\s+1 und SVr4. SVr4 dokumentiert zusätzlich die Fehler \s-1EINVAL\s+1, \s-1EIO\s+1, \s-1EINTR\s+1 und \s-1ENOLINK\s+1. .SH EINSCHRÄNKUNGEN Die Semantik von .BR chown () wird auf \s-1NFS\s+1-Dateisystemen mit aktiviertem \s-1UID\s+1-mapping (Umsetzung der Benutzerkennungen zwischen verschiedenen Rechnern) bewusst verletzt. Außerdem wird bei allen Systemaufrufen, die auf den Dateiinhalt zugreifen, die Semantik verletzt, da .BR 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. .SH "SIEHE AUCH" .BR chmod (2), .BR flock (2).