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