OSError:[错误1]不允许操作

时间:2012-06-07 18:35:41

标签: python linux file-permissions user-permissions

我正在尝试运行一个python脚本,该脚本使用由postlinker创建的二进制文件(xFiles.bin.addr_patched)。但是,我收到了这个错误。

File "abc.py", line 74, in ParseCmd
shutil.copy(gOptions.inputX, gWorkingXFile)
File "/usr/lib/python2.6/shutil.py", line 89, in copy
copymode(src, dst)
File "/usr/lib/python2.6/shutil.py", line 66, in copymode
os.chmod(dst, mode)

OSError: [Errno 1] Operation not permitted: 'myPath/xFiles.bin.addr_patched'

当我通过ls -l检查此xFiles.bin的权限时,它显示

-rwxrwxrwx 1 nobody  nogroup 

我认为错误是因为这个文件是由其他一些应用程序创建的,我运行的python脚本无法访问它。由于我是ubuntu的初学者,我真的不知道如何修复它。对于如何解决这个问题,有任何的建议吗?

解决:

作为其中一个答案建议:chown用户名:groupname文件名修复此问题

4 个答案:

答案 0 :(得分:10)

你可以尝试(从命令行,但我确定python中有一个语法):

sudo chown your_username:your_groupname filename

注意:该组通常只是您的用户名。 我觉得这些权限有问题。 Read Write Execute对每个人来说似乎都是关闭的。这个文件是怎么创建的?它是如何由用户nobody创建的?

答案 1 :(得分:3)

用于更改权限的Python代码:

from getpwnam import pwd
from getgrnam import grp
import os

uid = getpwnam("YOUR_USERNAME")[2]
gid = grp.getgrnam("YOUR_GROUPNAME")[2]
os.chown("myPath/xFiles.bin.addr_patched", uid, gid)

使用sudo运行脚本,您已完成。

答案 2 :(得分:1)

我的猜测是你应该查看myPath文件夹的权限。好像你不能写信给它,因此问题。试试ls -l myPath/..并查看myPath的权限。如果这是问题,请使用chmod更改文件夹的权限。

P.S。另请参阅Linux file permissions上的Google热门结果。

答案 3 :(得分:0)

在我的Mac(10.14 Mojave)上尝试访问/Users/xxx/Pictures/Photos Library.photoslibrary时运行python脚本时遇到此问题。 完整的解决方案可以在http://osxdaily.com/2018/10/09/fix-operation-not-permitted-terminal-error-macos/

中找到

摘要: 进入“系统偏好设置”>“安全性和隐私”>“隐私”>“全盘访问”,然后将您的IDE或python解释器添加到列表中。