【问题标题】:suds Python: Permission deniedsuds Python:权限被拒绝
【发布时间】:2015-03-11 17:26:12
【问题描述】:

我有一些代码自去年 11 月以来一直未动过,它一直运行良好,直到现在。据我所知,此主机上没有其他任何更改。

错误:

Traceback (most recent call last):
  File "/scm/pvcs/scripts/pyscripts/update_scr_20.py", line 115, in <module>
    updateSCR(SCR, myDeployer, myDeployerID, myEnv, myEnvID, deployTime)
  File "/scm/pvcs/scripts/pyscripts/update_scr_20.py", line 33, in updateSCR
    client = Client(url=SBM_WSDL, location=SBM_ENDPOINT, timeout=180)
  File "build/bdist.linux-x86_64/egg/suds/client.py", line 109, in __init__
  File "build/bdist.linux-x86_64/egg/suds/cache.py", line 145, in __init__
  File "build/bdist.linux-x86_64/egg/suds/cache.py", line 277, in checkversion
  File "build/bdist.linux-x86_64/egg/suds/cache.py", line 251, in clear
OSError: [Errno 13] Permission denied: '/tmp/suds/suds-7962357479995671267-document.px'

我已将文件权限更改为 777,但仍然收到相同的“权限被拒绝”错误。

【问题讨论】:

  • 指向该文件的目录层次结构的权限如何?
  • 您更改了什么文件的权限?每次都是同一个文件吗?
  • 层次权限好。
  • ps-我将'/tmp/suds/suds-7962357479995671267-document.px'文件权限更改为777,是的,每次都是同一个文件。
  • 无论您希望完成什么,chmod 777 都是错误危险的。您绝对不想这样做在任何情况下向所有用户授予对可执行文件或系统文件的写入权限。您将希望尽快恢复正常权限(对于您的用例,可能是chmod 755)并在尝试再次使用之前了解 Unix 权限模型。如果这种情况发生在可以访问 Internet 的系统上,请检查入侵者是否可以利用它来提升他们的权限。

标签: python suds


【解决方案1】:

suds 在多用户环境中运行时会引发此错误。您的用户(正在使用您运行脚本的用户)不得拥有该目录的所有权。还可以尝试关闭cache 或更改缓存目录。

您能分享导致错误的代码部分吗?您应该捕获异常并查看完整的错误日志。

【讨论】:

    【解决方案2】:

    这对于python soap 客户端来说本质上是一个不太完美的设计决定。默认情况下,它会在单个用户拥有的全局空间 (/tmp/suds) 中创建一个文件,并阻止其他用户使用 python soap 客户端。如果您 chmod /tmp/suds/* 允许世界访问,它将起作用(IBM 在他们的 OpenStack 产品中推荐的)......或者在使用客户端后通过删除它留下的垃圾进行清理。

    soap 客户端应该在用户空间(在 /home/username 下)创建 suds 目录,以便每个用户都有自己的,或者如果它真的应该是一个全局资源,它应该使用对文件的开放访问.如果两者都不做,可能会导致许多用户浪费大量时间。我会称之为错误。花费用户时间并且很容易修复的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多