Provided by: manpages-nl-dev_4.27.0-1_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 FS_IOC_SETFLAGS(2const).)

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

VERSIES

   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.´

VOLDOET AAN

       POSIX.1-2008.

GESCHIEDENIS

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

       fchmodat()
              POSIX.1-2008.  Linux 2.6.16, glibc 2.4.

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 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.

Linux man-pagina's 6.9.1                          13 juni 2024                                          chmod(2)