Suivant: Certificats X.509, Précédent: Services, Monter: Configuration système [Table des matières][Index]
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)
.
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: Certificats X.509, Précédent: Services, Monter: Configuration système [Table des matières][Index]