CHOWN(2)           Manuel du programmeur Linux           CHOWN(2)


NOM
       chown,  fchown,  lchown  -  Modifier  l'appartenance  d'un
       fichier.

SYNOPSIS
       #include <sys/types.h>
       #include <unistd.h>

       int chown(const char *path, uid_t owner, gid_t group);
       int fchown(int fd, uid_t owner, gid_t group);
       int lchown(cost char *path, uid_t owner, gid_t group);

DESCRIPTION
       Le propriétaire et le groupe du  fichier  désigné  par  le
       chemin  path ou par le descripteur de fichier fd sont mod­
       ifiés. Seul le Super-User  peut  changer  le  propriétaire
       d'un  fichier.  Le  propriétaire peut changer le groupe du
       fichier pour n'importe quel groupe auquel  il  appartient.
       Le Super-User peut changer le groupe arbitrairement.

       Si l'argument owner ou group vaut -1, l'élément correspon­
       dant n'est pas changé.

       Quand  le  propriétaire,  ou  le   groupe   d'un   fichier
       exécutable sont modifiés par un utilisateur ordinaire, les
       bits S_ISUID et S_ISGID sont effacés.   POSIX  ne  précise
       pas s'il faut agir de même lorsque c'est le Super-Utilisa­
       teur qui invoque chown.  Le comportement de Linux dans  ce
       cas  dépend  de  la version du noyau.  Si le fichier n'est
       pas exécutable par les membres de  son  groupe,  (son  bit
       S_IXGRP  étant  à zéro) le bit S_ISGID indique la présence
       d'un verrou obligatoire sur le fichier, et n'est donc  pas
       effacé par un chown.


VALEUR RENVOYÉE
       chown, lchown, et fchown renvoient 0 s'ils réussissent, ou
       -1 s'ils échouent,  auquel  cas  errno  contient  le  code
       d'erreur.

ERREURS
       Suivant  le  type de sytème de fichiers, plusieurs erreurs
       peuvent être renvoyées. Les plus courantes pour chown sont
       les suivantes :


       EPERM     L'UID  effectif du processus ne correspond pas à
                 celui du fichier, et n'est pas nul, ou  le  pro­
                 priétaire   owner   ou   le  groupe  group  sont
                 spécifiés incorrectement.

       EROFS     Le fichier spécifié réside  sur  un  système  de
                 fichiers en lecture seule.




Linux                     26 Avril 1998                         1





CHOWN(2)           Manuel du programmeur Linux           CHOWN(2)


       EFAULT    path  pointe  en  dehors de l'espace d'adressage
                 accessible.

       ENAMETOOLONG
                 path est trop long.

       ENOENT    Le fichier n'existe pas.

       ENOMEM    Pas assez de mémoire pour le noyau.

       ENOTDIR   Un élément du chemin d'accès n'est pas un réper­
                 toire.

       EACCES    L'accès à un élément du chemin est interdit.

       ELOOP     path   contient   une  référence  circulaire  (à
                 travers un lien symbolique)

       Les erreurs courantes pour fchown sont les suivantes :

       EBADF     Le descripteur de fichier est invalide

       ENOENT    Cf chown.

       EPERM     Cf chown.

       EROFS     Cf chown.  EIO Une erreur  d'entree/sortie  bas-
                 niveau  s'est produite durant la modification de
                 l'i-noeud.

NOTES
       Dans les versions de  Linux  antérieures  à  2.1.81  (sauf
       2.1.46),  chown  ne  suivait  pas  les  liens symboliques.
       Depuis cette version, chown suit les liens symboliques, et
       il existe un nouvel appel-système, lchown, qui ne les suit
       pas.  Depuis Linux 2.1.86, ce nouvel appel système (qui  a
       donc  la  même  sémantique que l'ancien  chown) a pris son
       numéro de Syscall, et chown a reçu un nouveau numéro.

       Le prototype de la fonction fchown est  seulement  utilis­
       able si la constante symbolique __USE_BSD est définié.

CONFORMITÉ
       L'appel  système  chown  est conforme à SVr4, SVID, POSIX,
       X/OPEN.  La version 4.4BSD ne peut être appelée que par le
       Super-User (ce qui signifie qu'un utilisateur ordinaire ne
       peut pas céder la propriété d'un fichier).  SVr4 documente
       les erreurs  EINVAL, EINTR, ENOLINK et EMULTIHOP, mais pas
       ENOMEM.  POSIX.1 ne décrit ni ENOMEM ni ELOOP.

       L'appel système fchown est  conforme  à  4.4BSD  et  SVr4.
       SVr4 indique des conditions d'erreurs supplémentaires EIN­
       VAL, EIO, EINTR, et ENOLINK.




Linux                     26 Avril 1998                         2





CHOWN(2)           Manuel du programmeur Linux           CHOWN(2)


REMARQUES
       La sémantique de chown() est volontairement  modifiée  sur
       les  systèmes  de  fichiers NFS où la correspondance d'UID
       est activée. De plus, c'est  la  sémantique  de  tous  les
       appels  systèmes  accédant au contenu des fichiers qui est
       modifiée, puisque chown() peut déclencher une interdiction
       immédiate  d'accès  à  des fichiers déjà ouverts. Un cache
       situé du côté client peut induire un délai entre l'instant
       où  l'appartenance du fichier est modifiée et le moment où
       l'accès est effectivement accordé à l'utilisateur.


VOIR AUSSI
       chmod(2), flock(2).


TRADUCTION
       Christophe Blaess, 1997.







































Linux                     26 Avril 1998                         3