Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       chmod, fchmod - Zugriffsrechte einer Datei ändern.

       Diese  Handbuchseite ist eventuell veraltet. Im Zweifelsfall ziehen Sie
       die englischsprachige Handbuchseite zu Rate, indem Sie

              man -LC 2 chmod

       eingeben.

ÜBERSICHT

       #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 geändert. Die Rechte werden angegeben
       durch bitweises Oder der folgenden Werte:

              S_ISUID   04000 Setze Benutzerkennung bei Ausführung;

              S_ISGID   02000 Setze Gruppenkennung bei Ausführung;

              S_ISVTX   01000 'Sticky-Bit' (Erklärung siehe unten);

              S_IRUSR (S_IREAD)
                        00400 Leserechte für Eigentümer;

              S_IWUSR (S_IWRITE)
                        00200 Schreibrechte für Eigentümer;

              S_IXUSR (S_IEXEC)
                        00100    Ausführrechte     für     Eigentümer,     bei
                        Verzeichnissen:     Eigentümer     darf    Verzeichnis
                        durchsuchen;

              S_IRGRP   00040 Leserechte für Gruppe;

              S_IWGRP   00020 Schreibrechte für Gruppe;

              S_IXGRP   00010 Ausführrechte für  Gruppe,  bei  Verzeichnissen:
                        Gruppe darf Verzeichnis durchsuchen;

              S_IROTH   00004 Leserechte für andere;

              S_IWOTH   00002 Schreibrechte für Gruppe;

              S_IXOTH   00001  Ausführrechte  für  andere, bei Verzeichnissen:
                        andere dürfen Verzeichnis durchsuchen;

       Die effektive Benutzerkennung des Prozesses muss  entweder  null  sein,
       oder sie muss mit der Kennung des Dateieigentümers übereinstimmen.

       Ist   die  effektive  Benutzerkennung  des  Prozesses  nicht  null  und
       entspricht die Gruppenzugehörigkeit der Datei nicht einer  der  Gruppen
       des  aufrufenden  Prozesses, so wird das S_ISGID-Bit abgeschaltet, ohne
       dass  ein  Fehler  zurückgeliefert  wird.  Abhängig   vom   verwendeten
       Dateisystem  können  die  S_ISUID-  und  S_ISGID-Bits  gelöscht 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  Dateieigentümer oder dem Administrator (root) gelöscht
       werden.

       Auf NFS-Dateisystemen  findet  die  Zugriffskontrolle  auf  dem  Server
       statt,  während  der  Klient  selbst  seine  offenen Dateien verwaltet.
       Verschärfte  Zugriffsrechte  treten  somit  augenblicklich  in   Kraft.
       Erweiterte  Zugriffsrechte hingegen werden erst nach und nach an andere
       Klienten weitergegeben.

RÜCKGABEWERT

       Sind die Zugriffsrechte erfolgreich  geändert,  wird  0  zurückgegeben.
       Tritt  ein Fehler auf, wird -1 zurückgegeben und errno entsprechend der
       Fehlerursache gesetzt.

FEHLER

       Welche  Fehler  im  einzelnen  zurückgeliefert  werden,  hängt  ab  vom
       verwendeten  Dateisystem.  Die  folgenden Auflistungen nennen lediglich
       die allgemein üblichen.

       Zunächste die Fehler für chmod:

       EPERM  Die effektive Benutzerkennung ist weder  null,  noch  entspricht
              sie dem Eigentümer der Datei.

       EROFS  Die  angegebene  Datei  befindet sich auf einem Dateisystem, das
              nur lesbar ist.

       EFAULT Pfad zeigt auf einen  Speicherbereich  außerhalb  des  erlaubten
              Adressraums des Prozesses.

       ENAMETOOLONG
              Pfad ist zu lang.

       ENOENT Der angegebene Pfadname existiert nicht.

       ENOMEM Das  Betriebssystem  verfügt nicht über ausreichend Speicher, um
              die Anweisung auszuführen.

       ENOTDIR
              Eine Komponente von Pfad ist kein Verzeichnis.

       EACCES Dem Prozess ist nicht  erlaubt,  eine  Komponente  von  Pfad  zu
              durchsuchen.

       ELOOP  Pfad enthält zu viele symbolische Verweise.

       EIO    Ein Ein-/Ausgabefehler ist aufgetreten.

       Übliche Fehler bei fchmod:

       EBADF  fd ist kein gültiger 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 zusätzlichen 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
       zusätzlichen 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
       zusätzlichen 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),