chmod

CHMOD(2)                 Linux Programmeurs Handleiding                 CHMOD(2)



NAAM
       chmod, fchmod, fchmodat - verander toestemmingen van een bestand

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);

   Test Macro´s 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
       The chmod()  and fchmod()  system calls change a file's mode bits.  (The
       file mode consists of the file permission bits plus the set-user-ID,
       set-group-ID, and sticky bits.)  These system calls differ only in how
       the file is specified:

       * 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 Linuxkomt 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 toestemmingen onmiddellijk
       de al open 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 toestemmingen kan later doordringen tot
       andere cliënten als het kenmerken bufferen bij hen aan status.

   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 Zoek toestemming werd geweigerd op een deel van het
              pad-voorvoegsel. (Zie ook path_resolution(7).)

       EBADF  (fchmod())  The file descriptor fd is not valid.

       EBADF  (fchmodat())  pathname is relative but dirfd is neither AT_FDCWD
              nor a valid file descriptor.

       EFAULT padnaam wijst buiten de voor u toegankelijke adresruimte.

       EINVAL (fchmodat())  Invalid flag specified in flags.

       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())  pathname is relative and dirfd is a file descriptor
              referring to a file other than a directory.

       ENOTSUP
              (fchmodat())  flags specified AT_SYMLINK_NOFOLLOW, which is not
              supported.

       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 aan glibc in versie 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)

COLOFON
       Deze pagina is onderdeel van release 5.13 van het Linux
       man-pages-project. Een beschrijving van het project, informatie over het
       melden van bugs en de nieuwste versie van deze pagina zijn op
       https://www.kernel.org/doc/man-pages/ te vinden.


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



Linux                           27 augustus 2021                        CHMOD(2)