7

我正在尝试运行一个使用后链接器创建的二进制文件(xFiles.bin.addr_patched)的python脚本。但是,我收到此错误。

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 解决了这个问题

4

4 回答 4

12

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

sudo chown your_username:your_groupname filename

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

于 2012-06-07T18:39:23.347 回答
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你就完成了。

于 2012-06-07T18:49:20.900 回答
1

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

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

于 2012-06-07T18:44:49.133 回答
1

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

于 2020-01-03T07:12:31.133 回答