다른 사용자로 파이썬 하위 프로세스를 사용하지만, 다른 사용자로 서브 프로세스를 실행할 때 : 잘못된 환경 내가 루트로 실행이 간단한 파이썬 스크립트가
#!/usr/bin/env python2
import subprocess
import os
def demote(user_uid):
def result():
os.setuid(user_uid)
return result
cmd = "echo $USER"
proc = subprocess.Popen(cmd, preexec_fn=demote(1000), stdout=subprocess.PIPE, shell=True)
output = proc.communicate()[0]
print output
cmd를 다음 "잠 60"스크립트 급부상 경우
# ps -ef | grep sleep
dave 17812 17811 0 17:05 pts/5 00:00:00 /usr/bin/sleep 60
그러나 cmd가 'echo $ USER'이면 outout은 'root'입니다. 하위 사용자를 노터 사용자로 생성하면 사용자의 환경을 가져와야 할 사람이 있습니까?