Provided by:
manpages-de-dev_0.10-1_all 
BEZEICHNUNG
chmod, fchmod - Zugriffsrechte einer Datei andern.
Diese Handbuchseite ist eventuell veraltet. Im Zweifelsfall ziehen Sie
die englischsprachige Handbuchseite zu Rate, indem Sie
man -LC 2 chmod
eingeben.
"UBERSICHT
#include <sys/types.h>
#include <sys/stat.h>
int chmod(const char *Pfad, mode_t Rechte);
int fchmod(int fd, mode_t Rechte);
BESCHREIBUNG
Die Zugriffsrechte der durch Pfad beziehungsweise fd angegebenen Datei
oder des Verzeichnisses werden geandert. Die Rechte werden angegeben
durch bitweises Oder der folgenden Werte:
S_ISUID 04000 Setze Benutzerkennung bei Ausfuhrung;
S_ISGID 02000 Setze Gruppenkennung bei Ausfuhrung;
S_ISVTX 01000 'Sticky-Bit' (Erklarung siehe unten);
S_IRUSR (S_IREAD)
00400 Leserechte fur Eigentumer;
S_IWUSR (S_IWRITE)
00200 Schreibrechte fur Eigentumer;
S_IXUSR (S_IEXEC)
00100 Ausfuhrrechte fur Eigentumer, bei
Verzeichnissen: Eigentumer darf Verzeichnis
durchsuchen;
S_IRGRP 00040 Leserechte fur Gruppe;
S_IWGRP 00020 Schreibrechte fur Gruppe;
S_IXGRP 00010 Ausfuhrrechte fur Gruppe, bei Verzeichnissen:
Gruppe darf Verzeichnis durchsuchen;
S_IROTH 00004 Leserechte fur andere;
S_IWOTH 00002 Schreibrechte fur Gruppe;
S_IXOTH 00001 Ausfuhrrechte fur andere, bei Verzeichnissen:
andere durfen Verzeichnis durchsuchen;
Die effektive Benutzerkennung des Prozesses muss entweder null sein,
oder sie muss mit der Kennung des Dateieigentumers ubereinstimmen.
Ist die effektive Benutzerkennung des Prozesses nicht null und
entspricht die Gruppenzugehorigkeit der Datei nicht einer der Gruppen
des aufrufenden Prozesses, so wird das S_ISGID-Bit abgeschaltet, ohne
dass ein Fehler zuruckgeliefert wird. Abhangig vom verwendeten
Dateisystem konnen die S_ISUID- und S_ISGID-Bits geloscht werden,
sobald die Datei beschrieben wird.
Auf manchen Dateisystemen darf lediglich der Administrator das Sticky-
Bit setzen. Das Sticky-Bit kann verschiedene Bedeutungen haben,
beispielsweise kann in Verzeichnissen mit gesetztem Sticky-Bit eine
Datei nur vom Dateieigentumer oder dem Administrator (root) geloscht
werden.
Auf NFS-Dateisystemen findet die Zugriffskontrolle auf dem Server
statt, wahrend der Klient selbst seine offenen Dateien verwaltet.
Verscharfte Zugriffsrechte treten somit augenblicklich in Kraft.
Erweiterte Zugriffsrechte hingegen werden erst nach und nach an andere
Klienten weitergegeben.
R"UCKGABEWERT
Sind die Zugriffsrechte erfolgreich geandert, wird 0 zuruckgegeben.
Tritt ein Fehler auf, wird -1 zuruckgegeben und errno entsprechend der
Fehlerursache gesetzt.
FEHLER
Welche Fehler im einzelnen zuruckgeliefert werden, hangt ab vom
verwendeten Dateisystem. Die folgenden Auflistungen nennen lediglich
die allgemein ublichen.
Zunachste die Fehler fur chmod:
EPERM Die effektive Benutzerkennung ist weder null, noch entspricht
sie dem Eigentumer der Datei.
EROFS Die angegebene Datei befindet sich auf einem Dateisystem, das
nur lesbar ist.
EFAULT Pfad zeigt auf einen Speicherbereich auBerhalb des erlaubten
Adressraums des Prozesses.
ENAMETOOLONG
Pfad ist zu lang.
ENOENT Der angegebene Pfadname existiert nicht.
ENOMEM Das Betriebssystem verfugt nicht uber ausreichend Speicher, um
die Anweisung auszufuhren.
ENOTDIR
Eine Komponente von Pfad ist kein Verzeichnis.
EACCES Dem Prozess ist nicht erlaubt, eine Komponente von Pfad zu
durchsuchen.
ELOOP Pfad enthalt zu viele symbolische Verweise.
EIO Ein Ein-/Ausgabefehler ist aufgetreten.
Ubliche Fehler bei fchmod:
EBADF fd ist kein gultiger Dateideskriptor.
EROFS Siehe oben.
EPERM Siehe oben.
EIO Siehe oben.
KONFORM ZU
Der chmod-Aufruf ist vereinbar mit SVr4, SVID, POSIX, X/OPEN und
4.4BSD. SVr4 legt die zusatzlichen Fehler EINTR, ENOLINK und EMULTIHOP
fest, jedoch kein ENOMEM. In POSIX.1 fehlen die EFAULT, ENOMEM, ELOOP
und EIO Fehlerbedingungen sowie die Makros S_IREAD, S_IWRITE und
S_IEXEC.
Der fchmod-Aufruf ist vereinbar mit 4.4BSD und SVr4. SVr4 legt die
zusatzlichen Fehler EINTR und ENOLINK fest. POSIX verlangt die fchmod-
Funktion, sofern zumindest eines von _POSIX_MAPPED_FILES und
_POSIX_SHARED_MEMORY_OBJECTS definiert ist. Zudem beschreibt es die
zusatzlichen Fehler ENOSYS und EINVAL, nicht jedoch EIO.
Weder POSIX, noch X/OPEN dokumentieren das Sticky-Bit.
SIEHE AUCH
open(2), chown(2), execve(2), stat(2),