SETFSUID

Section: Manuel du programmeur Linux (2)
Updated: 18 juillet 2003
Index


NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
CONFORMITÉ
BOGUES
NOTE
VOIR AUSSI
TRADUCTION

NOM

setfsuid - Fixer l'UID pour les vérifications d'accès au système de fichiers.

SYNOPSIS

#include <unistd.h> /* glibc uses <sys/fsuid.h> */
int setfsuid(uid_t fsuid)

DESCRIPTION

setfsuid fixe l'UID que le noyau Linux utilise pour vérifier tous les accès du processus au système de fichiers. Normalement la valeur de fsuid va masquer la valeur de l'UID effectif. En fait, si l'UID effectif est modifié, fsuid sera aussi modifié pour la nouvelle valeur de l'UID effectif.
L'appel explicite de setfsuid n'est normalement utile qu'aux programmes tels que le serveur NFS qui ont besoin de modifier l'UID utilisé pour les accès aux fichiers sans changer véritablement leurs UID réels et effectifs. Une modification de l'UID normal d'un programme comme un serveur NFS serait un trou de sécurité qui l'exposerait à des signaux indésirables en provenance d'autres processus du même utilisateur.
setfsuid ne réussira que si l'appelant est le Super-User ou si fsuid correspond à l'UID réel, à l'UID effectif, à l'UID sauvé, ou encore à la valeur actuelle de fsuid.

VALEUR RENVOYÉE

setfsuid renvoie la valeur précédente fsuid s'il réussit. En cas d'erreur la valeur actuelle de fsuid est renvoyée.

CONFORMITÉ

setfsuid est spécifique à Linux et ne doit pas être employé dans des programmes conçus pour être portables.

BOGUES

Il n'y a pas de messages d'erreur renvoyés. Il serait bon d'avoir au moins un code d'erreur EPERM.

NOTE

Lorsque la bibliothèque GlibC s'aperçoit que l'argument n'est pas un UID valide, elle revoie -1 et place EINVAL dans errno sans essayer d'appeler l'appel-système réel.
Notez que lors de l'introduction de cet appel-système, un processus pouvait envoyer un signal à un autre processus avec le même UID effectif. De nos jours les permissions pour les signaux sont légèrement différentes.

VOIR AUSSI

kill(2), setfsgid(2)

TRADUCTION

Christophe Blaess, 1996-2003.