[英]OSError: [Error 1] Operation not permitted
我正在尝试运行一个 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 username:groupname file name 解决了这个问题
您可以尝试(从命令行,但我确定python中有语法):
sudo chown your_username:your_groupname filename
注意:该组通常只是您的用户名。 我觉得这些权限有问题。 每个人的读写执行似乎都关闭了。 这个文件是如何创建的? 它是如何由用户nobody
创建的?
更改权限的 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
运行脚本,你就完成了。
我的猜测是您应该查看myPath
文件夹的权限。 似乎您无法写入它,因此存在问题。 尝试ls -l myPath/..
并查看myPath
的权限。 如果这是问题,请使用chmod
更改文件夹的权限。
PS 另外,请参阅关于Linux 文件权限的Google 最高结果。
我在我的 mac(10.14 Mojave)上运行 python 脚本试图访问/Users/xxx/Pictures/Photos Library.photoslibrary
时遇到了这个问题。 完整的解决方案可以在http://osxdaily.com/2018/10/09/fix-operation-not-permitted-terminal-error-macos/ 中找到
摘要:转到系统偏好设置 > 安全和隐私 > 隐私 > 全盘访问,然后将您的 IDE 或 python 解释器添加到列表中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.