进程'pid,ppid,uid,euid,gid和egid之间有什么区别?

Jos*_*ter 33 ruby pid process

上下文:我正在获取当前的Ruby进程ID.

Process.pid  #=> 95291

Process.ppid #=> 95201

Process.uid  #=> 501

Process.gid  #=> 20

Process.euid #=> 501

Process.egid #=> 20
Run Code Online (Sandbox Code Playgroud)

Lin*_*ios 34

为了:

  • pid:这是您调用Process.pid方法的进程的进程ID(PID).
  • ppid:父进程的PID(产生当前进程的进程).例如,如果您ruby test.rb在bash shell中运行,那么该进程中的PPID将是Bash的PID.
  • uid:正在运行该进程的用户的UNIX ID.
  • euid:进程正在运行的有效用户标识.EUID根据允许具有此UID的用户执行的操作来确定允许程序执行的操作.通常相同uid,但可以与命令不同sudo.
  • gid:程序运行的UNIX组ID.
  • egid:喜欢euid,但对于团体.


Bru*_*yne 14

PID:

在Linux中,存储在磁盘上的可执行文件称为程序,加载到内存中并运行的程序称为进程.当一个进程启动时,它会被赋予一个称为进程ID(PID)的唯一编号,用于标识该系统的进程.例如,如果您需要终止进程,可以通过其PID引用它.

PPID:

除了唯一的进程ID之外,还为每个进程分配一个父进程ID(PPID),以告知哪个进程启动了它.PPID是进程父级的PID.

例如,如果具有PID为101的process1启动名为process2的进程,则process2将被赋予唯一的PID,例如3240,但它将被赋予PPID 101.它是父子关系.单个父进程可能会生成多个子进程,每个进程都有一个唯一的PID,但都共享相同的PPID.

发表于:

类Unix操作系统通过称为用户标识符的值来识别内核中的用户,该标识符通常缩写为UID或用户ID.UID以及GID和其他访问控制标准用于确定用户可以访问哪些系统资源.密码文件将文本用户名映射到UID,但在内核中,只使用UID.

EUID:

进程的有效UID(euid)用于大多数访问检查.它还用作该进程创建的文件的所有者.

GID:

组标识符(通常缩写为GID)是用于表示特定组的数值.GID的值范围因系统而异; 至少,GID可以在0到32,767之间,但有一个限制:超级用户的登录组必须具有GID 0.

EGID:

进程的有效GID(egid)也会影响访问控制,并且还可能影响文件创建,具体取决于所使用的特定内核实现的语义以及可能使用的挂载选项.

有关更多信息,请参阅这些文章

  1. 什么是PID和PPID?
  2. PID,PPID和TGID的含义
  3. 用户标识符
  4. 组标识符