我被分配到
编写一个 C 程序,打印以下标识符 PID、PPID、SID、PGID、UID、EUID。
然后任务继续问
每个标识符代表什么?
我已经完成了这个程序,但还没有找到对标识符的充分解释。
- 它们真正代表什么?
- 特别是 SID 和 PGID 标识符的用途是什么?
我被分配到
编写一个 C 程序,打印以下标识符 PID、PPID、SID、PGID、UID、EUID。
然后任务继续问
每个标识符代表什么?
我已经完成了这个程序,但还没有找到对标识符的充分解释。
它们如下
看看这个 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 †</sup>
用于确定各种权限的进程属性,包括文件访问权限;另请参阅用户 ID。
†</sup> 请注意,EUID 和 EGID(效果组 ID)不用于 Linux 下的文件系统权限,它分别采用文件系统的 FSUID 和 FSGID 字段。
RedHat 6.x 文档中的这个页面对这些在 Linux 下的行为有很好的简洁解释:http: //www.mit.edu/afs.new/athena/system/rhlinux/redhat-6.2-docs/HOWTOS/其他格式/html/Secure-Programs-HOWTO-html/Secure-Programs-HOWTO-3.html