Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

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

SYNOPSIS

       #include <sys/fsuid.h>

       int setfsuid(uid_t fsuid);

DESCRIPTION

       L'appel  setfsuid()  modifie  la  valeur de l'identifiant de l'appelant (UID) que le noyau
       Linux utilise pour valider les accès au système de fichiers.  Normalement,  la  valeur  de
       l'identifiant  s'alignera  sur  la  valeur effective de l'identifiant de l'utilisateur. En
       pratique, si l'UID effectif est modifié, la valeur  de  l'UID  au  niveau  du  système  de
       fichiers sera également mise à jour à la nouvelle valeur de l'UID effectif.

       L'appel  explicite  de setfsuid() ou setfsgid(2) n'est normalement utile qu'aux programmes
       tels que le serveur NFS qui ont besoin de modifier le  GID  utilisé  pour  les  accès  aux
       fichiers  sans  changer  véritablement  leurs GID réels et effectifs. Une modification des
       identifiants normaux d'un programme comme un serveur NFS serait un trou  de  sécurité  qui
       l'exposerait à des signaux indésirables. Voir ci‐dessous.

       setfsuid()  ne réussira que si l'appelant est le superutilisateur ou si fsuid correspond à
       l'UID réel de l'appelant, à son l'UID effectif, à son UID sauvé, ou encore à la valeur  de
       I'UID au niveau du système de fichier au moment de l'appel.

VALEUR RENVOYÉE

       En cas de succès comme en cas d'échec, l'appel renvoie la dernière valeur de l'identifiant
       utilisateur (UID) de l'appelant dans le système de fichiers.

VERSIONS

       Cet appel système est présent sous Linux depuis la version 1.2.

CONFORMITÉ

       setfsuid() est spécifique à Linux et ne devrait  pas  être  employé  dans  des  programmes
       destinés à être portables.

NOTES

       Lorsque  la  bibliothèque  glibc  s'aperçoit  que l'argument n'est pas un UID valide, elle
       renvoie -1 et place EINVAL dans errno sans essayer d'appeler l'appel système réel.

       Lorsque cet appel système a été introduit, un processus pouvait envoyer  un  signal  à  un
       autre processus avec le même identifiant utilisateur effectif. Cela avait pour conséquence
       que si un processus disposant de privilèges changeait son identifiant utilisateur effectif
       afin de valider les droits d'un fichier, il était susceptible de recevoir des signaux d'un
       autre processus (ne disposant pas de privilèges) avec  le  même  identifiant  utilisateur.
       Pour  cette  raison,  l'attribut  ID  utilisateur  a été introduit au niveau du système de
       fichiers pour permettre à un processus de changer son identifiant utilisateur  et  valider
       les  droits  d'un  fichier,  sans  pour  autant devenir vulnérables au signaux envoyés par
       d'autres processus. A partir de Linux 2.0, la prise en charge des permissions des  signaux
       a  évolué  (consultez kill(2)), de sorte que la modification d'un processus puisse changer
       l'ID utilisateur effectif sans pour autant rendre le processus vulnérable aux signaux  non
       sollicités  envoyés  par  d'autres  processus.  Ainsi,  setfsuid()  n'est  désormais  plus
       nécessaire et on doit éviter d'y avoir recours dans les nouvelles  applications  (de  même
       qu'on évitera d'utiliser setfsgid(2)).

       L'appel  système setfsuid() original de Linux ne gérait que des identifiants d'utilisateur
       sur 16 bits. En conséquence, Linux 2.4 a ajouté  setfsuid32()  qui  prend  en  charge  des
       identifiants  32 bits.  La fonction setfsuid() de la glibc qui l'encapsule gère de manière
       transparente ces différences entre noyaux.

BOGUES

       Aucune indication concernant l'erreur n'est renvoyée à l'appelant et le fait que  la  même
       valeur  soit  retournée  en  cas de succès ou d'échec ne permet pas de savoir si l'appel a
       réussi ou échoué. Pour cela, l'appelant devra se référer à la valeur renvoyée par un appel
       ultérieur  par  exemple  à  setfsuid(-1)  (qui  échouera toujours). Cet appel permettra de
       savoir si un appel antérieur à setfsuid() a changé l'identifiant utilisateur au niveau  du
       système  de  fichiers. Au minimum, EPERM doit être renvoyé lorsque l'appel échoue (puisque
       l'appelant ne dispose pas des privilèges CAP_SETUID).

VOIR AUSSI

       kill(2), setfsgid(2), capabilities(7), credentials(7)

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux.  Une  description
       du  projet  et  des  instructions  pour  signaler  des  anomalies  peuvent être trouvées à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <http://po4a.alioth.debian.org/>  par l'équipe de traduction francophone au sein du projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe   Blaess   <http://www.blaess.fr/christophe/>   (1996-2003),    Alain    Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>   ou   par   un  rapport  de  bogue  sur  le  paquet
       manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document  en  utilisant  la
       commande « man -L C <section> <page_de_man> ».