Quand ces utilisateurs ont-ils été créés?
Dans le cas de ceux que vous avez mentionnés, ils ont été créés lors de l'installation du système. Ces comptes d'utilisateurs sont classiques, certains remontant à des décennies. Ils sont également standardisés. La base standard Linux les divise en:
- le besoin des comptes utilisateur standard,
root, binet daemon; et
- l' option des comptes utilisateur standard
adm, lp, sync, shutdown, halt, mail, news, uucp, operator, manetnobody
D' autres comptes d'utilisateurs qui sont mentionnés ici - pulse, avahi, colordet Debian-exim(choisir un à partir du fichier de mot de passe py4on) - nous amener à la question suivante.
Comment sont-ils liés aux nouveaux programmes installés?
Les comptes d'utilisateurs non standard sont créés et détruits par les «scripts de maintenance» pour divers packages, au fur et à mesure que ces packages sont installés et purgés. Un compte d'utilisateur sera créé par le soi-disant postinstscript de maintenance du package , qui s'exécute getentpour voir si le compte d'utilisateur existe déjà et useradds'il ne l'est pas. En théorie, il serait supprimé par le soi-disant postrmscript de maintenance du package , en cours d'exécution userdel.
En pratique, les comptes d'utilisateurs des packages ne sont pas supprimés. Le wiki Fedora (qv) explique que cela serait très difficile. Voir le bogue Debian # 646175 pour un exemple de cette justification en action, où il est simplement décidé de ne pas supprimer le rabbitmqcompte utilisateur lorsque le paquet est purgé, pour résoudre un problème avec un démon qui continue de fonctionner sous l'égide de ce compte.
Comment ces programmes ont-ils démarré avec différents UID?
Sous Unix et Linux, un processus exécuté sous l'égide du superutilisateur peut changer son compte d'utilisateur en quelque chose d'autre et continuer à exécuter le même programme, mais l'inverse n'est pas autorisé. (Il faut utiliser le mécanisme set-UID.)
Le système de gestion dæmon fonctionne en tant que superutilisateur. Ses données de configuration spécifient que des démons particuliers s'exécutent sous l'égide de comptes d'utilisateurs particuliers:
- Avec System 5,
rcle script /etc/init.dutilise un outil d'aide tel que start-stop-daemonet son --chuidoption.
- Avec un gestionnaire de services de famille daemontools, les
runappels de script setuidgid, s6-setuidgid, chpstou runuidavec le nom du compte utilisateur. Il existe des exemples de cela dans /unix//a/179798/5132 qui définissent le nagioscompte d'utilisateur.
- Avec upstart, il y a une
setuidstrophe dans un fichier de travail, qui spécifie le compte utilisateur. Ce n'est pas particulièrement fin, et parfois on veut ce qui est décrit sur /superuser//a/723333/38062 .
- Avec systemd, il y a un
User=paramètre dans le fichier d'unité de service, qui spécifie le compte d'utilisateur.
Lorsque le système de gestion dæmon génère un processus pour être le dæmon, ces mécanismes abandonnent les privilèges de superutilisateur afin que le processus dæmon continue de s'exécuter sous l'égide du compte d'utilisateur non privilégié.
Il y a une explication assez longue pour laquelle une bonne gestion des démons se fait de cette façon. Mais vous n'avez pas demandé pourquoi; seulement quand, comment et d'où. ☺ Un très bref précis donc:
Les systèmes d'exploitation Unix et Linux isolent les processus s'exécutant sous l'égide de différents comptes d'utilisateurs les uns des autres. Historiquement, si l'on était en mesure de reprendre un démon qui fonctionnait en tant que superutilisateur, on pouvait faire tout ce qu'on voulait. Un démon qui s'exécute sous l'égide d'un compte non privilégié, d'autre part, ne peut accéder qu'aux fichiers, répertoires, périphériques et processus que ce compte non privilégié peut. Un système de programmes Dæmon sans confiance mutuelle fonctionnant tous sous l'égide de différents comptes d'utilisateurs et incapables d'accéder / de contrôler les fichiers / répertoires / processus / périphériques (internes, approuvés) les uns des autres, est donc beaucoup plus difficile à déchiffrer.
Lectures complémentaires