Подтвердить что ты не робот

В чем разница между процессами pid, ppid, uid, euid, gid и egid?

Контекст: я получаю текущий идентификатор процесса Ruby.

Process.pid  #=> 95291

Process.ppid #=> 95201

Process.uid  #=> 501

Process.gid  #=> 20

Process.euid #=> 501

Process.egid #=> 20
4b9b3361

Ответ 1

В порядке:

  • pid: Идентификатор процесса (PID) процесса, к которому вы вызываете метод Process.pid.
  • ppid: PID родительского процесса (процесс, который породил текущий). Например, если вы запустите ruby test.rb в оболочке bash, PPID в этом процессе будет PID из Bash.
  • uid: идентификатор UNIX пользователя, в котором выполняется этот процесс.
  • euid: эффективный идентификатор пользователя, с которым работает этот процесс. EUID определяет, какую программу разрешено делать, исходя из того, что разрешено пользователю с этим UID. Обычно это те же, что и uid, но могут отличаться от команд типа sudo.
  • gid: идентификатор группы UNIX, в котором работает программа.
  • egid: Как euid, но для групп.

Ответ 2

PID:

В Linux исполняемый файл, хранящийся на диске, называется программой, а программа, загружаемая в память и работающая, называется процессом. Когда процесс запускается, ему присваивается уникальный номер, называемый идентификатором процесса (PID), который идентифицирует этот процесс в системе. Если вам когда-либо понадобится убить процесс, например, вы можете ссылаться на него своим ПИД.

PPID:

В дополнение к уникальному идентификатору процесса каждому процессу присваивается идентификатор родительского процесса (PPID), который сообщает, какой процесс был запущен. PPID является PID родительского процесса.

Например, если process1 с PID из 101 запускает процесс с именем process2, то process2 будет предоставлен уникальный PID, такой как 3240, но ему будет присвоен PPID 101. Его отношение родитель-потомок. Один родительский процесс может порождать несколько дочерних процессов, каждый из которых имеет уникальный PID, но все используют один и тот же PPID.

UID:

Unix-подобные операционные системы определяют пользователей в ядре значением, называемым идентификатором пользователя, часто сокращенным до UID или идентификатора пользователя. UID, наряду с GID и другими критериями контроля доступа, используется для определения того, какие системные ресурсы пользователь может получить. Файл паролей сопоставляет текстовые имена пользователей с UID, но в ядре используется только UID.

EUID:

Для большинства проверок доступа используется эффективный UID (euid) процесса. Он также используется как владелец файлов, созданных этим процессом.

GID:

Идентификатор группы, часто сокращенный до GID, представляет собой числовое значение, используемое для представления конкретной группы. Диапазон значений для GID варьируется в зависимости от разных систем; по крайней мере, GID может быть между 0 и 32 767 с одним ограничением: группа входа для суперпользователя должна иметь GID 0.

EGID:

Эффективный GID (egid) процесса также влияет на управление доступом и может также влиять на создание файла, в зависимости от семантики используемой конкретной реализации ядра и, возможно, используемых параметров монтирования.

Обратитесь к этим статьям за дополнительной информацией: