使用vfork()创建的进程是否具有与创建者进程相同的权限级别,即父进程?
示例:如果我以root身份运行进程,vfork()子进程是否拥有相同的执行权限?
答案 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
的规范。