web-dev-qa-db-fra.com

Quelle est la différence entre un pid, un ppid, un uid, un euid, un gid et un egid d'un processus?

Contexte: j'obtiens le Ruby ID de processus.

Process.pid  #=> 95291

Process.ppid #=> 95201

Process.uid  #=> 501

Process.gid  #=> 20

Process.euid #=> 501

Process.egid #=> 20
31
Joshua Pinter

En ordre:

  • pid: le est l'ID de processus (PID) du processus que vous appelez Process.pid méthode dans.
  • ppid: Le PID du processus parent (le processus qui a engendré le processus actuel). Par exemple, si vous exécutez Ruby test.rb dans un shell bash, PPID dans ce processus serait le PID de Bash.
  • uid: ID UNIX de l'utilisateur sous lequel s'exécute le processus.
  • euid: l'ID utilisateur effectif sous lequel s'exécute le processus. L'EUID détermine ce qu'un programme est autorisé à faire, en fonction de ce que l'utilisateur avec cet UID est autorisé à faire. Généralement identique à uid, mais peut être différent avec des commandes comme Sudo.
  • gid: ID de groupe UNIX sous lequel le programme s'exécute.
  • egid: Comme euid, mais pour les groupes.
30
Linuxios

PID:

Sous Linux, un exécutable stocké sur disque est appelé un programme, et un programme chargé en mémoire et en cours d'exécution est appelé un processus. Lorsqu'un processus est démarré, il reçoit un numéro unique appelé ID de processus (PID) qui identifie ce processus pour le système. Si vous avez besoin de tuer un processus, par exemple, vous pouvez vous y référer par son PID.

PPID:

En plus d'un ID de processus unique, chaque processus se voit attribuer un ID de processus parent (PPID) qui indique quel processus l'a démarré. Le PPID est le PID du parent du processus.

Par exemple, si process1 avec un PID de 101 démarre un processus nommé process2, alors process2 recevra un PID unique, tel que 3240, mais il recevra le PPID de 101. Il s'agit d'une relation parent-enfant. Un processus parent unique peut engendrer plusieurs processus enfants, chacun avec un PID unique mais partageant tous le même PPID.

UID:

Les systèmes d'exploitation de type Unix identifient les utilisateurs au sein du noyau par une valeur appelée identifiant utilisateur, souvent abrégée en UID ou ID utilisateur. L'UID, ainsi que le GID et d'autres critères de contrôle d'accès, sont utilisés pour déterminer les ressources système auxquelles un utilisateur peut accéder. Le fichier de mots de passe mappe les noms d'utilisateur textuels aux UID, mais dans le noyau, seuls les UID sont utilisés.

EUID:

L'UID effectif (euid) d'un processus est utilisé pour la plupart des contrôles d'accès. Il est également utilisé en tant que propriétaire des fichiers créés par ce processus.

GID:

Un identifiant de groupe, souvent abrégé en GID, est une valeur numérique utilisée pour représenter un groupe spécifique. La plage de valeurs pour un GID varie selon les différents systèmes; au minimum, un GID peut être compris entre 0 et 32 ​​767, avec une restriction: le groupe de connexion pour le superutilisateur doit avoir le GID 0.

EGID:

Le GID efficace (egid) d'un processus affecte également le contrôle d'accès et peut également affecter la création de fichiers, en fonction de la sémantique de l'implémentation spécifique du noyau utilisée et éventuellement des options de montage utilisées.

Reportez-vous à ces articles pour plus d'informations:

  1. Que sont les PID et PPID?
  2. Signification de PID, PPID et TGID
  3. Identifiant utilisateur
  4. Identificateur de groupe
14
Bruce Wayne