【问题标题】:What do the identifiers PID, PPID, SID, PGID, UID, EUID mean?标识符 PID、PPID、SID、PGID、UID、EUID 是什么意思?
【发布时间】:2017-05-20 18:49:21
【问题描述】:

我被分配到

编写一个 C 程序,打印以下标识符 PID、PPID、SID、PGID、UID、EUID。

作业接着问

每个标识符代表什么?

我已经完成了程序,但没有找到对标识符的充分解释。

  • 它们真正代表什么?
  • 特别是 SID 和 PGID 标识符的用途是什么?

【问题讨论】:

  • unix.stackexchange.com/questions/82724 有 PGID 和 SID 的名称,如果您正在寻找的话。
  • 谢谢,但是我知道 SID 是从哪里来的,我需要解释一下
  • 两种可能性:您的老师希望您打印环境变量变量,或者您的老师希望您使用 UNIX API 来获取系统放入这些变量的值。例如。 PPID 是父进程的 PID。尝试echo $PPID 在您的环境中查看它。

标签: linux unix userid process-group


【解决方案1】:

如下

查看this SO Post 和第一个答案,了解它们的用途。

来自他们发布的推荐定义页面
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html

3.270 父进程 ID

一个新进程的属性,标识进程的父进程。进程的父进程 ID 是其创建者的进程 ID,在创建者的生命周期内。创建者的生命周期结束后,父进程 ID 是实现定义的系统进程的进程 ID。

3.343 会话

为作业控制目的而建立的流程组的集合。每个进程组都是一个会话的成员。进程被认为是其进程组所属的会话的成员。新创建的进程加入其创建者的会话。一个进程可以改变它的会话成员;请参阅 setid()。同一会话中可以有多个进程组。

3.296 进程组

允许相关进程发出信号的进程集合。系统中的每个进程都是由进程组 ID 标识的进程组的成员。新创建的进程加入其创建者的进程组。

3.297 进程组 ID

表示进程组在其生命周期内的唯一正整数标识符。

3.142 有效用户 ID

用于确定各种权限的进程属性,包括文件访问权限;另请参阅用户 ID。


请注意,在 Linux 下,EUID 和 EGID(效果组 ID)不用于文件系统权限,而是分别采用文件系统的 FSUID 和 FSGID 字段。

RedHat 6.x 文档中的这个页面对这些在 Linux 下的行为有一个非常简洁的解释:http://www.mit.edu/afs.new/athena/system/rhlinux/redhat-6.2-docs/HOWTOS/other-formats/html/Secure-Programs-HOWTO-html/Secure-Programs-HOWTO-3.html

【讨论】:

  • 随时!如果此人或similar posts 有回答您问题的答案,请通过选择他们旁边的绿色复选标记将其标记为答案,以帮助我们作为作家和其他遇到您问题的用户。
  • EUID: An attribute of a process that is used in determining various permissions, including file access permissions; 根据man7.org/linux/man-pages/man7/credentials.7.html,这不适用于 Linux。
  • 这有点令人困惑,但公平/真实!具体来说,Linux 使用 Filesystem ID 获得文件系统权限,使用 EUID 获得其他权限(内核构造等“例如消息队列、共享内存和信号量”-manpage)
猜你喜欢
  • 2015-08-10
  • 1970-01-01
  • 1970-01-01
  • 2015-01-22
  • 2012-04-12
  • 1970-01-01
  • 2018-01-09
  • 2010-09-29
  • 2011-04-18
相关资源
最近更新 更多