<span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">Hi,</span><br style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);"><span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">
</span><br style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);"><span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">
     When forking a child process, the copy_process() function will by</span><br style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);"><span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">
default clear the PF_SUPERPRIV flag, which indicates whether a process</span><br style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);"><span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">
use superuser privileges. That means a  superuser process will create</span><br style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);"><span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">
a child process does not has superuser privileges. I think the child</span><br style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);"><span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">
process of a superuser process should also be a superuser one, while</span><br style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);"><span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">
the child process of a normal process by default should also be a</span><br style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);"><span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">
normal one (except that the setuid bit of the child executable is turn</span><br style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);"><span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">
on). In both cases it is not necessary that the PF_SUPERPRIV flag to</span><br style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);"><span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">
be cleared.  So, I wonder why the PF_SUPERPRIV flag is cleared by</span><br style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);"><span style="background-color: rgb(255, 255, 255); color: rgb(153, 51, 153);">
defult.</span><br style="background-color: rgb(153, 51, 153); color: rgb(153, 51, 153);"><br><br>Hi,<br><br>This flag <span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">PF_SUPERPRI, indicates used superuser privileges and not use superuser privileges. Which in any case, INDEPENDENT of all the processes which have superuser privileges, whether they had used them or not and for those processes which do not have superuser privileges needs to be cleared for the child of them (since the child process has been just created and at this point in time it has not used the superuser privileges) Its a kind of initialization you can think of.<br>
<br>Regards,<br>Rohan.<br></span>