我想創建一個文件(最好與open(…)
一起使用),並讓所有者與運行代碼的人員不同。爲其他用戶創建文件
我試圖創建該文件並使用os.chown
來更改所有者,但這似乎不起作用。這裏是我的嘗試:
import os
import pwd
user=pwd.getpwnam('user')
with open('somefile', 'w') as f:
f.write('blah, blah')
os.chown('somefile', user.pw_uid, user.pw_gid)
我得到以下錯誤:
OSError: [Errno 1] Operation not permitted: 'somefile'
我本來以爲這是改變文件的所有者的正確方法。
您的代碼很好,但普通用戶dos無權執行此操作。 (這是您無法編碼的操作系統的有意限制。)您必須以具有適當權限的用戶身份運行程序。但請注意,在已創建文件的時間窗口中存在爭用條件,但不包含chown()。 – 5gon12eder 2015-02-11 16:59:43