运行Python脚本时出现“OSError: [Error 1] Operation not allowed”如何解决?

问题描述 投票:0回答:4

我正在尝试运行一个Python脚本,该脚本使用由后链接器创建的二进制文件(

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'

当我通过

xFiles.bin
检查这个
ls-l
的权限时,显示:

-rwxrwxrwx 1 nobody  nogroup 

我认为该错误是因为该文件是由我正在运行的 Python 脚本无权访问的其他应用程序创建的。由于我是 Ubuntu 的初学者,我真的不知道如何解决它。关于如何解决这个问题有什么建议吗?

python linux file-permissions user-permissions
4个回答
15
投票

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

sudo chown your_username:your_groupname filename

注意:该组通常只是您的用户名。 但我觉得这些权限有问题。每个人的读写执行似乎都已关闭。这个文件是如何创建的?它是如何由用户

nobody
创建的?


5
投票

更改权限的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
运行脚本即可完成。


4
投票

我在我的 mac (10.14 Mojave) 上运行 python 脚本尝试访问

/Users/xxx/Pictures/Photos Library.photoslibrary
时遇到了这个问题。 完整的解决方案可以在 http://osxdaily.com/2018/10/09/fix-operation-not-permissed-terminal-error-macos/

找到

总结: 转到系统偏好设置 > 安全和隐私 > 隐私 > 全磁盘访问并将您的 IDE 或 python 解释器添加到列表中。


1
投票

我的猜测是,您应该查看

myPath
文件夹的权限。似乎你无法写入它,因此出现了问题。尝试
ls -l myPath/..
并查看
myPath
的权限。如果这是问题所在,请使用
chmod
更改文件夹的权限。

附注另外,请参阅 Google 关于 Linux 文件权限 的最高结果。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.