2012-07-21 68 views
1

我有一個腳本,需要運行超級用戶:蟒子作爲普通用戶

$ sudo ./python-script.py 

在這個劇本,我做一些其他的事情,需要超級用戶權限。

$ os.mkdir('somefolder') 

以非根用戶身份創建目錄的最佳/最有效的方式是什麼?我應該讓腳本以root用戶身份創建目錄,然後更改它的權限?

+0

do y創建目錄後需要root權限? – jfs 2012-07-21 06:03:15

+0

不一定... https://github.com/sudojesse/easy-vhost-add/blob/master/new-vhost.py – jessh 2012-07-21 06:04:39

回答

3

os.mkdir確實允許你明確指定的權限:

os.mkdir(path [, mode=0777]) 

,你也有運行os.chown設置用戶和組的選項

os.chown(path, uid, gid) 

你或許可以得到原來的用戶像這樣(但它可能是平臺特定的?)

import os 
original_user = os.environ.get('SUDO_USER') 
original_uid = os.environ.get('SUDO_UID') 
original_gid = os.environ.get('SUDO_GID') 
+0

有無論如何得到非root用戶的uid或gid嗎? – jessh 2012-07-21 06:05:32

+0

更新的可能性 – jdi 2012-07-21 06:09:03

+0

請原諒我的無知,但在上面的示例mkdir調用中是否代表了省略號對象? – iruvar 2012-07-21 06:12:48