我正在尝试运行一个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文件名修复此问题
答案 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解释器添加到列表中。