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

时间:2017-12-15 07:30:30

标签: ubuntu unix operating-system kernel aix

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

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

1 个答案:

答案 0 :(得分:1)

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

  

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

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

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

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

  

vfork()函数应等同于fork(),但如果由vfork()创建的进程修改除{{1}类型的变量之外的任何数据,则行为未定义。用于存储来自pid_t的返回值,或者从调用vfork()的函数返回,或者在成功调用vfork()或其中一个_exit()之前调用任何其他函数功能族。

从{POSIX 2008(又名POSIX 2016)中删除了exec的规范。