我想创建一个文件(最好与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'
我原以为这是更改文件所有者的正确方法。
答案 0 :(得分:1)
问题是您没有以root身份创建新文件,这是必需的。在SO中查看对this问题的评论。应该解决问题。
更新: 您需要超级用户权限才能执行此操作。所以在运行程序时,请使用
sudo python yourprogramname.py
这将允许您的python脚本超级用户权限。