python - Python / SSL - 该进程应该运行什么用户,就好像他们已经阅读了私钥一样?
问题描述
这里有一个很好的 Python 示例https://speakerdeck.com/markush/ssl-all-the-things-pycon-nz-2016?slide=18使用 SSL 的服务器。
在此刻 ...
...进程读取包含私钥的文件。
因此,无论进程运行的任何用户都需要对私钥的读取权限。
从安全的角度来看,最好的方法是什么?
将进程作为 'foo' 运行并授予 foo 对 PK 的读取权限会被认为是不好的做法吗?这对我来说听起来并不理想,但我只是看不出示例中的代码类型如何运行?
例如,我知道 Apache 以 root 身份启动,然后在具有较少权限的用户下生成一个进程。这是在这种情况下可以做的事情吗?有没有一个很好的例子来做这件事?
编辑:好吧,似乎这个https://docs.python.org/3.5/library/os.html#os.setuid将允许进程以 root 身份启动,然后在不同的所有者下运行(如果考虑过在需要像这里一样访问 PK 的地方是必要的)。会对在 Python 中完成的任何示例感兴趣......以及任何其他可能有效的方法。
编辑:只是为了添加关于使用os.setuid
阅读此https://unix.stackexchange.com/questions/166817/using-the-setuid-bit-properly的评论,似乎确实存在一些困难的风险在我的情况下减轻。我会对其他人如何设法编写无需以 root 身份运行即可访问私钥的 Python 脚本的任何建议感兴趣。
解决方案
推荐阅读
- python - 为什么我的 venv 使用的 pip 版本与我安装的不同
- pytorch - 僵尸进程不允许释放 GPU 内存
- html - 如何使用 CSS 或 jQuery 对齐网站标题
- python - 如何在其他 python 文件中使用 keras 模型?在 django
- c++ - 有没有办法使用有限的字母范围搜索 unordered_set?
- javascript - 如何在 pre 标签内右对齐内部元素
- javascript - 如何在 reactjs 版本 16.13.1 中获取输入文本的值
- ruby - 安装最新版本后显示的旧 Ruby 版本 | rbenv 和 zsh
- apache-flink - Flink:多数据中心部署可能吗?
- php - Laravel: 403 此操作未经授权