2012-12-11 43 views
7

我正在運行腳本作爲userA,該腳本擁有根訪問權限,從此腳本中我想撥打popen()調用並運行與userB不同的進程。以Python中的其他用戶的身份運行進程

os.setuid()似乎並沒有對這項工作(除非我這樣做不對?),我想避免一個基於Linux的解決方案,如su -userB -c <command>

是否有運行的Python的方式作爲userB而腳本運行的過程爲userA

+2

以下答案對此有一個非常好的方法:http://stackoverflow.com/a/6037494/505154 –

+0

@ F.J的+1。我在自己的代碼中使用了相同的方法。 – jdi

+1

+1以及@ F.J這很好!如果你想在這裏總結答案,我很樂意給你一些代表和答案。 – EEP

回答

7

以下的答案必須有這個一個非常好的做法:https://stackoverflow.com/a/6037494/505154

有正常工作的代碼示例有,但總結是使用subprocess.Popen()preexec_fn建立子進程的環境,以便其執行作爲另一個用戶。

相關問題