vfork()로 생성 된 프로세스는 부모 프로세스와 같은 생성자 프로세스의 권한과 동일한 수준입니까?vfork() 하위 사용자는 어떤 특권을 가지고 있습니까?
예 : root로 프로세스를 실행하는 경우 vfork() 하위 프로세스가 동일한 실행 권한을 가지고 있습니까?
vfork()로 생성 된 프로세스는 부모 프로세스와 같은 생성자 프로세스의 권한과 동일한 수준입니까?vfork() 하위 사용자는 어떤 특권을 가지고 있습니까?
예 : root로 프로세스를 실행하는 경우 vfork() 하위 프로세스가 동일한 실행 권한을 가지고 있습니까?
오픈 그룹 (POSIX) fork()
의 사양은 말한다 :
fork()
함수는 새로운 프로세스를 생성해야한다. 텍스트 아래의 UID의/GID를 언급이 없기 때문에
, 당신이 있음을 추론 할 수 있습니다 새로운 프로세스 (아이 프로세스)는 아래와 같이 상세한를 제외하고는 호출 프로세스 (부모 과정)의 정확한 복사본한다 이러한 속성은 상속됩니다.
이러한 속성은 적절한 속성 변경 함수 (setuid
등) 또는 exec
을 호출하면 결국 변경됩니다.
vfork()
의 (POSIX 2,004 이하) 이전 사양은 비슷하다
vfork()
의해 만들어진 프로세스가 하나의 다른 데이터를 수정하는 경우
가
vfork()
함수는 동작이 정의되지 않은 것을 제외하고fork()
동등한다vfork()
에서 반환 값을 저장하는 데 사용 된pid_t
변수의 값보다 커서를 반환하거나 이 호출 된 함수에서 반환하거나_exit()
또는exec
함수 집합 중 하나를 성공적으로 호출하기 전에 다른 함수를 호출합니다.
vfork()
의 사양은 POSIX 2008 (일명 POSIX 2016)에서 제거되었습니다.
이것은 vfork()에도 적용됩니까? 나는 vfork() 호출 안에서 (파일 접근과 관련된) 문제를 직면하고있다. https://stackoverflow.com/questions/47135880/webmethods-integration-servers-hang-in-hp-when-it-uses-a-third-party-java-api – Aravind
Aravind는 일부 코드를 공유합니다. vfork를 통해 생성 된 프로세스가 아무 것도 수정하지 않으면 정의되지 않은 bahvior가 문제가 될 수 있습니다. –
@Aravind OpenGroup * vfork()에 의해 생성 된 프로세스가 반환 값을 저장하는 데 사용되는 pid_t 유형의 변수 이외의 데이터를 수정하면 동작이 정의되지 않는다는 점을 제외하고 vfork() 함수는 fork()와 동일해야합니다. vfork() 또는 vfork()가 호출 된 함수에서 반환하거나 _exit() 또는 exec 함수 제품군 중 하나를 성공적으로 호출하기 전에 다른 함수를 호출합니다. * –