vfork()孩子拥有哪些特权?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vfork()孩子拥有哪些特权?相关的知识,希望对你有一定的参考价值。
使用vfork()创建的进程是否具有与创建者进程相同的特权级别,即父进程?
示例:如果我以root身份运行进程,vfork()子进程是否拥有相同的执行权限?
答案
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)中删除。
以上是关于vfork()孩子拥有哪些特权?的主要内容,如果未能解决你的问题,请参考以下文章