Python CGIHTTPServer 崩溃并显示“OSError:[Errno 13] 权限被拒绝”

2023-12-25

我正在从我的主目录运行以下命令:

python -m CGIHTTPServer

这会运行服务器,但是当我尝试访问 cgi-bin 目录中的脚本时,我得到:

Traceback (most recent call last):
  File "/usr/lib/python2.7/CGIHTTPServer.py", line 251, in run_cgi
    os.execve(scriptfile, args, env)
OSError: [Errno 13] Permission denied

以 root 身份运行并没有什么区别。这些文件似乎具有所有正确的权限:

student@bandersnatch:~$ ls -lhR
.:
total 12K
drwxr-xr-x 2 student student 4.0K Jun 13 18:38 cgi-bin
drwxr--r-- 2 student student 4.0K Jun 10  2004 kalpy
-rwxrwxrwx 1 student student 2.0K Jun 13 12:37 test.html

./cgi-bin:
total 8.0K
-rwxr-xr-x 1 student student 31 Jun 13 18:38 test.py

编辑:test.py 的内容是:

#!/usr/bin/python
print "test"

shebang 有效:

~$ which python
/usr/bin/python

您是否以 root 身份运行该进程?

If you 使用源,你会看到CGIHTTPServer.py,就在打电话之前execve:

try:
    os.setuid(nobody)
except os.error:
    pass

也就是说,如果它能够更改 UID(即如果它是 root),它将以无人身份运行 CGI 脚本。如果不是 root,则此调用很可能会失败并继续。

所以我的猜测是您正在以 root 身份运行服务器,因此脚本运行为nobody,但该用户无权访问该脚本。正如您所说,这是预期的,它位于您的主目录中。

我能想到的两个解决方案:

  • 建议:不要以 root 身份运行服务器!
  • 解决方法:将脚本复制到所在目录nobody可以阅读它(/tmp例如)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python CGIHTTPServer 崩溃并显示“OSError:[Errno 13] 权限被拒绝” 的相关文章

随机推荐

  • Java中的互斥方法执行

    我有两种方法 a and b 虽然我可以接受多个线程同时访问任何方法 这是可取的 但我不希望任何线程进入a while b 正在被执行 我怎么做 Edit 1 假设有 4 个线程Thread 1正在访问A 我想要的是所有 4 个线程都不应该
  • Angular REST API 安全性

    当我使用 Angular 消费 REST API 请求时 我的应用程序出现问题 Web 服务 URL 存储在 Angular 服务或控制器 js 文件中 因此 如果我有登录网络服务来检查用户名和密码 例如 最终用户或开发人员可以获取此网址并
  • 测试未通过:未定义方法“验证!”对于 nil:NilClass?

    我有以下失败 Failures 1 RelationshipsController creating a relationship with Ajax should increment the Relationship count Fail
  • 页面重新加载后记住 jQuery 选项卡位置

    我有一个包含一些 GridView 的页面 我使用选项卡菜单将它们保存在选项卡中 有四个选项卡 我的问题是 当页面重新加载时 选项卡会重置为第一个选项卡 HTML div class tabbed box nbsp nbsp div cla
  • 嵌入 hsql 的一些有趣的事情

    我只是对某些事情感到好奇 我在我的项目中使用 hsql 当然是嵌入式的 有时我觉得需要可视化 hibernate 生成的内容 我拿了一份 dbvisualizer 的免费副本 这是 hsqljdbc properties jdbc url
  • 如何为 postgres 编写 DELETE CASCADE?

    我正在为 postgres 手动构建 DELETE CASCADE 语句 我有一个 交易 和一个 切片 表 相关关系如下所示 Table public slice Column Type Modifiers id text not null
  • 如何在 Hadoop mapReduce 中获取 Kerberos 而不是委托令牌?

    我是一名 Java 用户 当向 Hadoop mapReduce 提交作业时 它使用 Kerberos 对 Hadoop 进行身份验证 成功后会创建委派令牌 并将其与作业提交一起传递给 Hadoop 而不是 kerberos 票证 出于安全
  • 当 SQL 查询受限时与调用整行相比,性能有何优势?

    通过在查询中仅选择所需字段而不是查询整行 可以带来多少性能优势 例如 如果我有一行 10 个字段 但只需要显示 5 个字段 是否值得只查询这 5 个字段 此限制带来的性能优势与稍后需要返回并在 sql 查询中添加字段的风险相比有何不同 您需
  • 如何在 Objective C 中将类对象转换为 json 字符串

    1 我创建类对象 然后使用此代码为我的类添加值 csJastorPollQuestion pq csJastorPollQuestion alloc initWithID 01 Name AAA 2 我在 NSLog 中显示了 csJast
  • Flask Restful NoAuthorizationError 缺少授权标头

    我使用 Python 3 6 在生产模式下在服务器上运行 Flask Restful 并访问需要 jwt 身份验证的端点 但我不断收到 NoAuthorizationError Missing Authorization Header 错误
  • InputText PrimeFaces 不应用 maxlength

    我将 PrimeFaces 3 4 与 PrimeFaces Mobile 0 9 3 结合使用 我在 inputText 属性中指定了 maxlength 但它没有在 HTML 中呈现 我的代码
  • x87 精度如何影响平方根?

    我编写了一些代码来测试 fsqrt 函数 但结果对我来说并不完全有意义 这是代码 delphi 中 uses mmsystem var rand longint 123456789 function rng longint asm imul
  • 如何将vi中的代码复制到剪贴板

    我知道如何在VI中复制 但我未能将其复制到其他应用程序中 这意味着我未能将它们复制到剪贴板中 我怎样才能做到这一点 附 以便更加倾斜 我还想问如何将剪贴板中的内容复制到vi 编辑 我正在使用 MacO 运行 Vim 看来 yy 在这里不起作
  • Numpy:点(a,b)和(a * b).sum()之间的差异

    对于一维 numpy 数组 这两个表达式应该产生相同的结果 理论上 a b sum a sum dot a b a sum 后者使用dot 并且速度更快 但哪一个更准确呢 为什么 接下来是一些上下文 我想使用 numpy 计算样本的加权方差
  • 代码是HttpClient或servlet API来解析Cookie头

    Apache HttpClient 或 servlet API 中是否有任何现有代码可以解析 Cookie 标头并从包含 name1 value1 name2 value2 的字符串中获取 Cookie 列表 编写代码来解析它似乎并不太难
  • 以编程方式将证书添加到个人存储

    我正在开发的项目包含一个与 WCF Web 服务通信的 MVC 网站 并通过 Windows 身份进行身份验证 我有一个身份委托证书 我正在尝试以编程方式添加该证书 要手动执行此操作 我在 mmc 中打开证书管理单元 将 pfx 文件导入到
  • 错误代码:3685。正则表达式的参数非法

    我试图使用下面的 SQL 语句在 MySQL 8 0 中找到确切的数字 SELECT FROM rulebook node body WHERE body value REGEXP lt DVP gt 当我运行上面的 SQL 语句时 出现以
  • python 3.8 venv缺少激活命令

    我在用户的主目录下编译了 Python 3 8 1 configure prefix home a user python3 8 enable shared 当我尝试使用 venv 时 我得到 python3 m venv test env
  • 用于选择最近的重复项的 SQL 查询

    我有一个值表 例如 每个条目都存储了一个日期 Name Age 支付金额 Date 有人可以帮助我编写一个查询 仅显示特定年龄范围内任何人的最近付款 例如 如果我有 5 个条目 并且想要所有 20 25 岁人群的最新付款 Allan 45
  • Python CGIHTTPServer 崩溃并显示“OSError:[Errno 13] 权限被拒绝”

    我正在从我的主目录运行以下命令 python m CGIHTTPServer 这会运行服务器 但是当我尝试访问 cgi bin 目录中的脚本时 我得到 Traceback most recent call last File usr lib