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

问题描述 投票:5回答: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'

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

-rwxrwxrwx 1 nobody  nogroup 

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

已解决:

作为建议的答案之一:chown用户名:groupname文件名解决了此问题

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

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

sudo chown your_username:your_groupname filename

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


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运行脚本,就完成了。


1
投票

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

P.S。另外,请参见Linux file permissions上的Google最佳搜索结果。


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解释器添加到列表中。

© www.soinside.com 2019 - 2024. All rights reserved.