使用vfork()创建的进程是否具有与创建者进程(即父进程)相同的权限级别?
例如:如果我以root身份运行进程,vfork()子进程是否拥有相同的执行权限?
发布于 2017-12-15 18:05:13
fork()的开放组织(POSIX)规范说:
fork()函数将创建一个新进程。新进程(子进程)应是调用进程(父进程)的精确副本,具体如下:
由于该文本下面没有提到UID/GID,因此可以推断这些属性是继承的。
这些属性最终通过调用适当的属性更改函数(setuid等)或exec进行更改。
旧的(POSIX2004或更早版本) vfork()规范与此类似:
vfork()函数应等同于fork(),但如果vfork()创建的进程修改了用于存储vfork()返回值的pid_t类型变量以外的任何数据,或者从调用vfork()的函数返回,或者在成功调用_exit()或exec系列函数之前调用了任何其他函数,则行为是未定义的。
从POSIX2008(又称POSIX2016)中删除了vfork()的规范。
https://stackoverflow.com/questions/47827680
复制相似问题