1. NOM

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

2. SYNOPSIS

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

int setfsgid(uid_t fsgid);

3. DESCRIPTION

setfsgid() définit 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. L'appel explicite de setfsuid(2) ou setfsgid() 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(hydessous. 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.

4. 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.

5. VERSIONS

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

6. CONFORMITÉ

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

7. 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. L'appel système setfsgid() original 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.

8. 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).

9. VOIR AUSSI

10. COLOPHON

Cette page fait partie de la publication 3.52 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/.

11. 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 à < >.

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