accueil > Gestion des paquets et du système > setgid

setgid : Comprendre et définir le bit SGID

setgid est un bit d'autorisation spécial appliqué aux fichiers ou aux répertoires. Lorsqu'il est défini sur un répertoire, tous les fichiers et sous-répertoires créés dans ce répertoire héritent de la propriété du groupe du répertoire parent. Lorsqu'il est défini sur un fichier exécutable, le fichier est exécuté avec l'ID de groupe du propriétaire du fichier. Ceci est utile pour faciliter la gestion des autorisations de groupe dans un environnement partagé ou pour s'assurer que des programmes spécifiques s'exécutent avec des autorisations de groupe spécifiques.

Aperçu

Le bit setgid est un type d'autorisation du système de fichiers qui se comporte différemment selon qu'il est appliqué à un fichier ou à un répertoire. Lorsqu'il est appliqué à un répertoire, tous les nouveaux fichiers et sous-répertoires créés dans ce répertoire héritent automatiquement de la propriété du groupe du répertoire parent. Lorsqu'il est appliqué à un fichier exécutable, le processus s'exécute avec l'ID de groupe du propriétaire du fichier lors de l'exécution du fichier.

Caractéristiques principales

  • Répertoire : les fichiers et sous-répertoires créés dans ce répertoire héritent de la propriété du groupe du répertoire parent.
  • Fichier exécutable : le processus s'exécute avec l'ID de groupe du propriétaire du fichier lors de l'exécution du fichier.
  • Il est défini et désactivé à l'aide de la commande `chmod`.

Exemples d'utilisation

Le bit setgid est défini à l'aide de la commande `chmod`. Vous pouvez utiliser le mode numérique (2xxx) ou le mode symbolique (g+s).

Définir setgid sur un répertoire (mode symbolique)

sudo chmod g+s /shared_data

Définit le bit setgid sur le répertoire `/shared_data` afin que tous les fichiers et sous-répertoires créés dans ce répertoire héritent de la propriété du groupe de `/shared_data`.

Définir setgid sur un répertoire (mode numérique)

sudo chmod 2770 /shared_data

Ajoute le bit setgid (2) aux autorisations existantes (rwxrwx---) pour le définir sur 2770.

Définir setgid sur un fichier exécutable

sudo chmod g+s /usr/local/bin/my_tool

Permet à un fichier exécutable spécifique de s'exécuter toujours avec les autorisations du groupe spécifié. (Par exemple, `my_tool` s'exécute avec les autorisations de `tool_group`)

Supprimer le bit setgid

sudo chmod g-s /path/to/item

Supprime le bit setgid d'un fichier ou d'un répertoire.

Vérifier la configuration de setgid

ls -l /path/to/item

Utilise la commande `ls -l` pour vérifier les autorisations d'un fichier ou d'un répertoire. Si 's' apparaît à la position de l'autorisation de groupe, setgid est défini.

Conseils et précautions

Le bit setgid est une fonctionnalité puissante, il faut donc l'utiliser avec prudence.

Utilisation de setgid pour les répertoires

  • Très utile lorsque plusieurs utilisateurs doivent créer des fichiers avec le même groupe dans un répertoire de travail partagé.
  • Permet de maintenir une propriété de groupe cohérente pour les nouveaux fichiers, réduisant ainsi les problèmes d'autorisations.

Précautions pour setgid sur les fichiers exécutables

  • La définition de setgid sur un fichier exécutable peut être une source de vulnérabilités de sécurité et doit être utilisée avec prudence.
  • Ne l'appliquez qu'aux fichiers exécutables fiables et dont la sécurité a été vérifiée.

Interaction avec umask

Lorsqu'un fichier est créé dans un répertoire avec le bit setgid défini, le paramètre `umask` est également pris en compte. `umask` restreint les autorisations par défaut des fichiers nouvellement créés, il doit donc être configuré de manière appropriée avec setgid.


Commandes de la même catégorie