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
, bin
et daemon
; et
- l' option des comptes utilisateur standard
adm
, lp
, sync
, shutdown
, halt
, mail
, news
, uucp
, operator
, man
etnobody
D' autres comptes d'utilisateurs qui sont mentionnés ici - pulse
, avahi
, colord
et 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 postinst
script de maintenance du package , qui s'exécute getent
pour voir si le compte d'utilisateur existe déjà et useradd
s'il ne l'est pas. En théorie, il serait supprimé par le soi-disant postrm
script 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 rabbitmq
compte 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,
rc
le script /etc/init.d
utilise un outil d'aide tel que start-stop-daemon
et son --chuid
option.
- Avec un gestionnaire de services de famille daemontools, les
run
appels de script setuidgid
, s6-setuidgid
, chpst
ou runuid
avec le nom du compte utilisateur. Il existe des exemples de cela dans /unix//a/179798/5132 qui définissent le nagios
compte d'utilisateur.
- Avec upstart, il y a une
setuid
strophe 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