- Setuid
-
Setuid (parfois suid) est un terme UNIX, abréviation de « Set User ID ».
Sommaire
Setuid et Setgid pour les exécutables
Il s'agit d'une propriété qui est appliquée aux fichiers et répertoires d'un système d'exploitation UNIX. Grâce à cette propriété, un processus exécutant un tel fichier peut s'exécuter au nom d'un autre utilisateur.
Quand un fichier exécutable est propriété de l'utilisateur root, et est rendu setuid, tout processus exécutant ce fichier peut effectuer ses tâches avec les permissions associées au root, ce qui peut constituer un risque de sécurité pour la machine, s'il existe une faille dans ce programme. En effet, un hacker pourrait utiliser cette faille pour s'arroger des droits d'administrateur et effectuer des opérations réservées, par exemple en se créant un compte d'accès illimité en temps et en pouvoirs.
Notez qu'il est parfaitement possible de rendre un programme setuid d'un compte non-root, ce qui diminue nettement les risques.
Pour d'évidentes raisons de sécurité, un processus ne peut être tracé par un utilisateur non privilégié au travers de l'exécution d'un programme setuid. Toute tentative de traçage d'un tel processus se traduit généralement par la simple non-application du changement d'utilisateur que prévoyait le bit setuid.
Il existe également une propriété Setgid (« Set Group ID ») qui modifie le groupe d'un processus, de la même façon que le Setuid modifie l'utilisateur au nom duquel il s'exécute. Les mêmes remarques de sécurité s'appliquent au bit setuid et au bit setgid.
Setgid pour les répertoires
Sur les systèmes unix et Linux, Setuid n'a pas d'effet sur les répertoires.
Le fonctionnement de Setgid sur un répertoire est très différent de celui sur les exécutables : si cette propriété est appliquée à un répertoire, tout fichier ou sous-répertoire créé dans ce répertoire parent appartiendra au groupe de celui-ci et non au groupe de l'utilisateur qui crée l'élément. Ceci est utile par exemple dans un dossier de partage, où l'on souhaite que tous les membres d'un groupe de superviseurs puissent modifier ou supprimer les contributions des membres d'un autre groupe.
Lorsqu'un sous-répertoire est créé, il hérite lui aussi de la propriété Setgid. En revanche, si des sous-répertoires existent déjà au moment de l'ajout du Setgid, ils ne sont pas affectés par celui-ci (sauf avec un setgid récursif).
Voir aussi
Articles connexes
Lien externe
- (en) Setuid Demystified (format PDF)
Wikimedia Foundation. 2010.