vfork()孩子拥有哪些特权?

问题描述 投票:2回答:1

使用vfork()创建的进程是否具有与创建者进程相同的特权级别,即父进程?

示例:如果我以root身份运行进程,vfork()子进程是否拥有相同的执行权限?

ubuntu unix operating-system kernel aix
1个回答
1
投票

fork()的Open Group(POSIX)规范说:

fork()函数将创建一个新进程。新进程(子进程)应该是调用进程(父进程)的精确副本,除非详述如下:

由于在该文本下面没有提及UID / GID,您可以推断这些属性是继承的。

最终通过调用适当的属性更改函数(setuid等)或exec来更改这些属性。

vfork()的旧(POSIX 2004或更早版本)规范类似:

vfork()函数应该等效于fork(),除非行为是未定义的,如果由vfork()创建的过程要么修改除用于存储pid_t的返回值的vfork()类型的变量之外的任何数据,要么返回vfork()所用的函数。在成功调用_exit()或其中一个exec函数之前调用或调用任何其他函数。

vfork()的规范已从POSIX 2008(又名POSIX 2016)中删除。

© www.soinside.com 2019 - 2024. All rights reserved.