繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM