리눅스 시스템의 경우, 나는 자식 프로세스를 생성하는 Python으로 프로그램을 작성하고있다. "다중 처리"라이브러리를 사용하고 현재 사용자가 아닌 다른 사용자와 하위 프로세스를 호출하는 방법이 있는지 궁금합니다. 다른 사용자 (예 : Postfix)와 같은 각 하위 프로세스를 실행할 수 있기를 원합니다.파이썬에서 다른 사용자의 하위 프로세스를 호출하는 방법은 무엇입니까?
아이디어 또는 포인터가 있습니까?
리눅스 시스템의 경우, 나는 자식 프로세스를 생성하는 Python으로 프로그램을 작성하고있다. "다중 처리"라이브러리를 사용하고 현재 사용자가 아닌 다른 사용자와 하위 프로세스를 호출하는 방법이 있는지 궁금합니다. 다른 사용자 (예 : Postfix)와 같은 각 하위 프로세스를 실행할 수 있기를 원합니다.파이썬에서 다른 사용자의 하위 프로세스를 호출하는 방법은 무엇입니까?
아이디어 또는 포인터가 있습니까?
파이썬 문서 예, 나는 그것이 여러분의 필요에 맞는 확실하지 않다 당신은 또한, 정확히에 setegid
from multiprocessing import Process
import os
def info(title):
print title
print 'module name:', __name__
print 'parent process:', os.getppid()
print 'process id:', os.getpid()
def f(name):
os.setuid(1000)
info('function f')
print 'hello', name
os.system('id')
if __name__ == '__main__':
info('main line')
p = Process(target=f, args=('bob',))
p.start()
p.join()
아 맞아! 감사 ! 나는 너무 복잡한 것을 검색하고 있었고 당신의 모범이 트릭을 멋지게 할 것입니다 : D – edomaur
os.setpgid (pid, pgrp) 방향을 살펴볼 수 있습니다.
어떤 전화를 setgid를 sedeuid 필요가있다라고하는 기능에 setuid를 추가 한 수정 너 사용하고있어? Popen을 사용하면 preexec_fn = lambda : os.setuid (100) – sherpya
과 같은 것을 사용할 수 있습니다. 다중 처리를 사용합니다. 프로세스 파생물. uid/gid 솔기를 API 부족으로 설정하기. – edomaur