Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

       setfsgid - Définir le GID pour les vérifications d'accès au système de fichiers

SYNOPSIS

       #include <sys/fsuid.h>

       int setfsgid(uid_t fsgid);

DESCRIPTION

       Sur  Linux, un processus a à la fois un identifiant de groupe de système de fichiers et un
       identifiant de groupe effectif. L'identifiant de groupe de système de fichiers (spécifique
       à  Linux)  est  utilisé  pour  la  vérification des droits lors de l'accès aux systèmes de
       fichiers, alors que l'identifiant de groupe effectif est utilisé pour  d'autres  types  de
       vérifications de droits (voir credentials(7)).

       Normalement,  la valeur de l'identifiant de groupe du système de fichiers du processus est
       la même que celle de l'identifiant de groupe effectif. C'est ainsi, car à chaque fois  que
       l'identifiant  de  groupe  effectif d'un processus change, le noyau passe l'identifiant de
       groupe du système de fichiers  à  la  valeur  de  l'identifiant  de  groupe  effectif.  Un
       processus  peut  faire  diverger  ses  identifiants  de  groupe  de système de fichiers et
       effectif, en utilisant setfsgid() pour  passer  l'identifiant  de  groupe  du  système  de
       fichiers à la valeur donnée dans fsgid.

       setfsgid() ne réussira que si l'appelant est le superutilisateur ou si fsgid correspond au
       GID réel de l'appelant, à son GID effectif, à son GID sauvé, ou  encore  à  la  valeur  de
       l'identifiant de l'utilisateur dans le système de fichiers 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
       du groupe (GID) 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É

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

NOTES

       Le  concept  d'identifiant  de groupe du système de fichiers et l'appel système setfsgid()
       ont été inventés pour des raisons historiques qui ne  s'appliquent  plus  sur  les  noyaux
       Linux  modernes.  Consultez   setfsuid(2)  si  vous  souhaitez  connaître les raisons pour
       lesquelles setfsuid(2) et setfsgid() ne sont désormais plus nécessaires.

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

   différences entre bibliothèque C et noyau
       Dans  la  glibc 2.15 et les versions antérieures, lorsque l'enveloppe de cet appel système
       détermine qu'elle ne peut pas passer cet argument au noyau sans tronquer un entier (car le
       noyau  est  ancien et ne gère pas les identifiants de groupe 32 bits), elle renverra -1 et
       positionnera errno sur EINVAL sans essayer l'appel système.

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  à  setfsgid(-1)  (qui  échouera toujours). Cet appel permettra de
       savoir si un appel antérieur à setfsgid() a changé l'identifiant du groupe (GID) 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_SETGID).

VOIR AUSSI

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

COLOPHON

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

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier   <barbier@debian.org>,   David   Prévot  <david@tilapin.org>,  Cédric  Boutillier
       <cedric.boutillier@gmail.com>, Frédéric Hantrais  <fhantrais@gmail.com>  et  Jean-Philippe
       MENGUAL <jpmengual@debian.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.