我想创建一个文件(最好与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