CHOWN(2)

NOM
chown, fchown - 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);

DESCRIPTION
Le proprietaire et le groupe du fichier designe par le chemin path ou par le descripteur de fichier fd sont modifies. Seul le Super-User peut changer le proprietaire d'un fichier. Le proprietaire 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'element correspondant n'est pas change.

VALEUR RENVOYEE
chown et fchown renvoient 0 s'ils reussissent, ou -1 s'ils echouent, auquel cas errno contient le code d'erreur.

ERREURS
Suivant le type de syteme de fichiers, plusieurs erreurs peuvent etre renvoyees. Les plus courantes pour chown sont les suivantes :

EPERM
    L'UID effectif du processus ne correspond pas a celui du fichier, et n'est pas nul, ou le proprietaire owner ou le groupe group sont specifies incorrectement.

EROFS
    Le fichier specifie reside sur un systeme de fichiers en lecture seule.

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 memoire pour le noyau.

ENOTDIR
    Un element du chemin d'acces n'est pas un repertoire.

EACCES
    L'acces a un element du chemin est interdit.

ELOOP
    path contient une reference circulaire (a 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
chown ne suit pas les liens symboliques. Le prototype de la fonction fchown est seulement utilisable si la constante symbolique __USE_BSD est definie.

CONFORMITE
L'appel systeme chown est conforme a SVr4, SVID, POSIX, X/OPEN. La version 4.4BSD ne peut etre appelee que par le Super-User (ce qui signifie qu'un utilisateur ordinaire ne peut pas ceder la propriete d'un fichier). SVr4 documente les erreurs EINVAL, EINTR, ENOLINK et EMULTIHOP, mais pas ENOMEM. POSIX.1 ne decrit ni ENOMEM ni ELOOP.

L'appel systeme fchown est conforme a 4.4BSD et SVr4. SVr4 indique des conditions d'erreurs supplementaires EINVAL, EIO, EINTR, et ENOLINK.

REMARQUES
La semantique de chown() est volontairement modifiee sur les systemes de fichiers NFS ou la correspondance d'UID est activee. De plus, c'est la semantique de tous les appels systemes accedant au contenu des fichiers qui est modifiee, puisque chown() peut declencher une interdiction immediate d'acces a des fichiers deja ouverts. Un cache situe du cote client peut induire un delai entre l'instant ou l'appartenance du fichier est modifiee et le moment ou l'acces est effectivement accorde a l'utilisateur.

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