SETFSGID(2)

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

SYNOPSIS
#include <unistd.h> /* glibc utilise <sys/fsuid.h> */

int setfsgid(uid_t fsgid);

DESCRIPTION
setfsgid() fixe le GID que le noyau Linux utilisera pour vérifier tous les accès du processus au système de fichiers. Normalement, la valeur de fsgid va masquer la valeur du GID effectif. En fait, si le GID effectif est modifié, fsgid sera aussi modifié pour la nouvelle valeur du GID effectif. Les appels explicites à setfsuid(2) et setfsgid() ne sont normalement utiles 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. setfsgid() ne réussira que si l'appelant est le superutilisateur ou si fsgid correspond au GID réel, au GID effectif, au GID sauvé, ou encore à la valeur actuelle de fsgid.

VALEUR RENVOYÉE
setfsgid() renvoie la valeur précédente fsgid s'il réussit. En cas d'erreur la valeur actuelle de fsgid est renvoyée.

CONFORMITÉ
setfsgid() est spécifique à Linux et ne doit pas être employé dans des programmes destinés à être portables. Il est présent depuis Linux 1.1.44 et dans la bibliothèque C depuis libc 4.7.6.

NOTES
Lorsque la bibliothèque glibc s'aperçoit que l'argument n'est pas un GID valide, elle renvoie -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.

BOGUES
Il n'y a pas de messages d'erreur renvoyés. Il serait bon d'avoir au moins un code d'erreur EPERM en cas d'échec (dans le cas où l'appelant n'a pas la capacité CAP_SETGID).

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

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 15 octobre 1996 et révisée le 23 juin 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 setfsgid ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.