Provided by: manpages-nl-dev_4.21.0-2_all bug

NAAM

       chmod, fchmod, fchmodat - verander toegangsrechten van een bestand

BIBLIOTHEEK

       Standard C bibliotheek  (libc, -lc)

SAMENVATTING

       #include <sys/stat.h>

       int chmod(const char *padnaam, mode_t toestand);
       int fchmod(int bes_ind, mode_t toestand);

       #include <fcntl.h>           /* Definitie van AT_* constanten */
       #include <sys/stat.h>

       int fchmodat(int map_bi, const char *padnaam, mode_t toestand, int vlaggen);

   Feature Test Macro´s eisen in  glibc (zie feature_test_macros(7)):

       fchmod():
           Sinds glibc 2.24:
               _POSIX_C_SOURCE >= 199309L
           Glibc 2.19 t/m 2.23
               _POSIX_C_SOURCE
           Glibc 2.16 t/m 2.19:
               _BSD_SOURCE || _POSIX_C_SOURCE
           Glibc 2.12 t/m 2.16:
               _BSD_SOURCE || _XOPEN_SOURCE >= 500
                   || _POSIX_C_SOURCE >= 200809L
           Glibc 2.11 een eerder:
               _BSD_SOURCE || _XOPEN_SOURCE >= 500

       fchmodat():
           Vanaf glibc 2.10:
               _POSIX_C_SOURCE >= 200809L
           Voor glibc 2.10:
               _ATFILE_SOURCE

BESCHRIJVING

       De  chmod()   en  fchmod()  systeem  aanroepen  veranderen  de  bestandsmodus  bits.  (Een
       bestandsmodus bestaat uit de bestandsrechten bits plus de set-user-ID, set-group-ID en  de
       plak-bits.) Deze systeem aanroepen verschillen alleen in de specificatie van het bestand:

       •  chmod()   verandert  de  modus  van  het  bestand  waarvan de padnaam werd opgegeven in
          padnaam, ontdaan van de referentie in het geval dit een symbolische koppeling is.

       •  fchmod()  verandert de modus van het bestand verwezen naar  de  open  bestandsindicator
          fd.

       De  nieuwe bestandsmodus is gespecificeerd in mode, welk een bit masker is aangemaakt door
       het OFen van nul of meer van de volgende:

       S_ISUID  (04000)  set-user-ID (zet het effectieve gebruiker ID op execve(2)).

       S_ISGID  (02000)  set-group-ID (zet effectieve groep  ID  van  het  proces  op  execve(2);
                         verplicht   locking,  zoals  beschreven  in fcntl(2); gebruikt de nieuwe
                         groep van het bestand uit de ouder  map, zoals  beschreven  in  chown(2)
                         en mkdir(2))

       S_ISVTX  (01000)  plak bit (beperkte wis vlag, zoals beschreven in unlink(2))

       S_IRUSR  (00400)  lezen door eigenaar

       S_IWUSR  (00200)  schrijven door eigenaar

       S_IXUSR  (00100)  voer-uit/zoek  door  eigenaar  ("zoek"  is  toepasbaar  op  mappen,  dit
                         betekent dat ingangen in een map toegankelijk zijn)

       S_IRGRP  (00040)  lees door groep

       S_IWGRP  (00020)  schrijf door groep

       S_IXGRP  (00010)  voer-uit/zoek door groep

       S_IROTH  (00004)  lezen door anderen

       S_IWOTH  (00002)  schrijven door anderen

       S_IXOTH  (00001)  uitvoeren/zoeken door anderen

       Het effectieve UID van het proces moet overeenkomen met de eigenaar van  het  bestand,  of
       het proces moet geprivilegieerd zijn (Linux: het moet de CAP_FOWNER capaciteit hebben).

       Als   het  aanroepende  proces  niet  gerechtigd  is  (Linux:  heeft  niet  de  CAP_FSETID
       capaciteit). en de groep van het bestand komt niet overeen met de effectieve groep ID  van
       het  proces of een van de aanvullende groep ID´s, dan zal het S_ISGID bit uitgezet worden,
       echter wordt geen fout teruggegeven.

       Als veiligheid maatregel, afhankelijk van het bestandssysteem  worden  de  set-user-ID  en
       set-group-ID uitvoering bits uitgezet als het bestand geschreven wordt. (Op Linux komt dit
       voor als  het  schrijvende  proces  de  CAP_FSETID  capaciteit  niet  heeft.)  Op  sommige
       bestandssystemen  kan  alleen  de  systeembeheerder  het plak-bit zetten, dat een speciale
       betekenis kan hebben. Zie, oor het plak-bit, en voor de set-user-ID en  set-group-ID  bits
       op mappen, inode(7).

       Op  NFS  bestandsystemen  zal  het  beperken  van de toegangsrechten onmiddellijk de reeds
       geopende bestanden beïnvloeden, omdat toegangs-controle wordt gedaan door de server,  maar
       de   geopende   bestanden  worden  onderhouden  door  de  cliënt.  Het  verruimen  van  de
       toegangsrechten kan mogelijk pas later doordringen tot andere cliënten  als  het  bufferen
       van kenmerken op de cliënten aan staat.

   fchmodat()
       De fchmodat()() systeem aanroep werkt op exact dezelfde manier als chmod() behalve voor de
       hier beschreven verschillen.

       Als de padnaam in padnaam relatief is, dan wordt deze geïnterpreteerd relatief aan de  map
       aangewezen door de bestand indicator dirfd (liever dan relatief aan de huidige werkmap van
       het aanroepende proces, zoals gedaan door chmod() voor een relatieve padnaam).

       Als padnaam relatief is en dirfd heeft de speciale  waarde  AT_FDCWD,  dan  wordt  padnaam
       geïnterpreteerd  relatief  aan  de  huidige  werkmap  van  het  aanroepende  proces (zoals
       chmod()).

       Als padnaam absoluut is, dan wordt mapbi genegeerd.

       vlaggen kan ofwel - zijn, of mag de volgende vlag bevatten:

       AT_SYMLINK_NOFOLLOW
              Als padnaam een symbolische koppeling is, verwijs er dan niet naar,  maar  behandel
              de koppeling zelf. Deze vlag is momenteel niet geïmplementeerd.

       Zie openat(2) voor een uitleg over de noodzaak van fchmodat().

EIND WAARDE

       Bij  succes  wordt  nul  teruggegeven.  Bij  falen  wordt  -1  teruggegeven en wordt errno
       overeenkomstig gezet.

FOUTEN

       Afhankelijk van het bestandsysteem kunnen andere fouten teruggegeven worden.

       De meer algemene fouten van chmod() worden hieronder genoemd.

       EACCES Het zoek toegangsrecht werd geweigerd op een deel van het pad-voorvoegsel. (Zie ook
              path_resolution(7).)

       EBADF  (fchmod())  De bestandsindicator bes_ind is ongeldig.

       EBADF  (fchmodat())   pathname  is  relatief  maar dirfd is noch AT_FDCWD noch een geldige
              bestandsindicator.

       EFAULT padnaam wijst buiten de voor u toegankelijke adresruimte.

       EINVAL (fchmodat()) Ongeldige vlag opgegeven in vlaggen.

       EIO    Een Invoer/Uitvoer fout trad op.

       ELOOP  Teveel symbolische koppelingen werden tegengekomen bij het vaststellen van padnaam.

       ENAMETOOLONG
              padnaam is te lang.

       ENOENT Het bestand bestaat niet.

       ENOMEM Onvoldoende kernelgeheugen voorhanden.

       ENOTDIR
              Een deel van het pad-voorvoegsel is geen map.

       ENOTDIR
              (fchmodat()) padnaam is relatief en mapbi is een  bestandsindicator  die  naar  een
              bestand wijst dat geen map is.

       ENOTSUP
              (fchmodat())   vlaggen  specificeerde  AT_SYMLINK_NOFOLLOW,  die  niet  ondersteund
              wordt.

       EPERM  Het effectieve UID komt niet overeen met de eigenaar van het bestand en het  proces
              is niet geprivilegieerd (Linux: het heeft niet de CAP_FOWNER capaciteit).

       EPERM  Het   bestand   is   gemarkeerd   als   onveranderlijk  of  alleen-toevoegen.  (Zie
              ioctl_iflags(2).)

       EROFS  Het benoemde bestand verblijft op een alleen-lezen bestandsysteem.

VERSIES

       fchmodat() is toegevoegd aan  Linux  in  kernel  2.6.16;  bibliotheek  ondersteuning  werd
       toegevoegd in glibc 2.4.

VOLDOET AAN

       chmod(), fchmod(): 4.4BSD, SVr4, POSIX.1-2001i, POSIX.1-2008.

       fchmodat(): POSIX.1-2008.

OPMERKINGEN

   C library/kernel verschillen
       De   GNU   C   bibliotheek   fchmodat()  omwikkel  functie  implementeert  de  door  POSIX
       gespecificeerde interface zoals beschreven op deze pagina. Dit interface verschilt van  de
       onderliggende Linux systeem aanroep, die het vlaggen argument niet heeft.

   Glibc-opmerkingen
       Op  ouder  kernels waar fchmod() niet beschikbaar is, valt de glibc omwikkel functie terug
       op het gebruik van chmod(). Als padnaam een relatieve padnaam is,  dan  construeert  glibc
       een padnaam gebaseerd op de symbolische koppeling in /proc/self/fd die overeenkomt met het
       dirfd argument.´

ZIE OOK

       chmod(1), chown(2), execve(2), open(2), stat(2), inode(7), path_resolution(7), symlink(7)

VERTALING

       De  Nederlandse  vertaling  van  deze  handleiding  is  geschreven   door   Jos   Boersema
       <joshb@xs4all.nl>,  Mario  Blättermann  <mario.blaettermann@gmail.com>  en  Luc Castermans
       <luc.castermans@gmail.com>

       Deze vertaling is vrije documentatie;  lees  de  GNU  General  Public  License  Version  3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  of later over de Copyright-voorwaarden. Er is
       geen AANSPRAKELIJKHEID.

       Indien U fouten in de vertaling van deze handleiding zou vinden,  stuur  een  e-mail  naar
       ⟨debian-l10n-dutch@lists.debian.org⟩.