Suivant: , Précédent: , Monter: Configuration système   [Table des matières][Index]


8.9 Programmes setuid

Certains programmes doivent être lancés avec les privilèges « root » même lorsqu’ils sont lancés par un utilisateur non privilégié. Un exemple notoire est le programme passwd, que les utilisateurs peuvent appeler pour modifier leur mot de passe et qui doit accéder à /etc/passwd et /etc/shadow — ce qui est normalement réservé à root, pour des raisons de sécurité évidentes. Pour contourner cela, ces exécutables sont setuid-root, ce qui signifie qu’ils seront toujours lancés avec les privilèges root (voir How Change Persona dans The GNU C Library Reference Manual, pour plus d’informations sur le mécanisme setuid).

Le dépôt lui-même ne peut pas contenir de programmes setuid ; cela serait un problème de sécurité puisque n’importe quel utilisateur du système peut écrire une dérivation qui rempli le dépôt (voir Le dépôt). Donc, un mécanisme différent est utilisé : au lieu de changer le bit setuid directement sur les fichiers qui sont dans le dépôt, nous laissons à l’administrateur système le soit de déclarer les programmes qui devraient être setuid root.

Le champ setuid-programs d’une déclaration operating-system contient une liste de G-expressions qui dénotent les noms des programmes à rendre setuid-root (voir Utiliser le système de configuration). Par exemple, le programme passwd, qui fait partie du paquet Shadow, peut être désigné par cette G-expression (voir G-Expressions) :

#~(string-append #$shadow "/bin/passwd")

Un ensemble de programmes par défaut est défini par la variable %setuid-programs du module (gnu system).

Variable Scheme : %setuid-programs

Une liste de G-expressions qui dénotent les programmes communément setuid-root.

La liste inclus des commandes comme passwd, ping, su et sudo.

Sous le capot, les programmes setuid sont créés dans le répertoire /run/setuid-programs au moment de l’activation du système. Les fichiers dans ce répertoire se réfèrent aux « vrais » binaires, qui sont dans le dépot.


Suivant: , Précédent: , Monter: Configuration système   [Table des matières][Index]