使用 vfork() 创建的进程是否具有与创建者进程(即父进程)相同级别的权限?
示例:如果我以 root 身份运行一个进程,vfork() 子进程是否拥有相同的执行权限?
开放组 (POSIX) 规范fork() http://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html says:
The fork()
函数应创建一个新进程。新进程(子进程
进程)应是调用进程(父进程)的精确副本
过程),但如下详述:
由于该文本下方没有提及 UID/GID,因此您可以推断这些属性是继承的。
这些属性最终通过调用适当的属性更改函数来更改(setuid
等)或exec
.
旧的(POSIX 2004 或更早版本)规范vfork() http://pubs.opengroup.org/onlinepubs/009695399/functions/vfork.html很相似:
The vfork()
函数应等于fork()
,除非如果创建的进程是未定义的,则行为是未定义的vfork()
修改除类型变量之外的任何数据pid_t
用于存储来自的返回值vfork()
,或从函数返回,其中vfork()
被调用,或者在成功调用之前调用任何其他函数_exit()
或其中之一exec
函数族。
规格vfork()
已从 POSIX 2008(又名 POSIX 2016)中删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)