1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212
|
.\" 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 <u31b3hs@pool.informatik.rwth-aachen.de>
.\" Modified Wed Jul 21 21:53:01 1993 by Rik Faith <faith@cs.unc.edu>
.\" Modified Tue Jul 9 13:59:51 1996 by Andries Brouwer <aeb@cwi.nl>
.\" Modified Wed Nov 6 03:49:07 1996 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified Sun May 18 10:34:09 1997 by Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
.\" 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 <sys/types.h>
.br
.B #include <unistd.h>
.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).
|