python - 是否可以设置由 Python setuptools 创建的 console_script 的 SUID?

标签 python python-2.7 setuptools sysadmin

我使用 Python 的设置工具将某些脚本安装为 console_scripts。此脚本以 www-data 用户身份运行。但是该脚本还需要访问只能由 root 用户读取的 SSL 证书。

我认为解决此问题的可能解决方案之一是在生成的 console_script 上设置 SUID。我可以使用 Makefile 手动执行此操作,但我一直在寻找更多已由 Python 生态系统中的任何打包工具提供的开箱即用的解决方案。

这可能吗?或者使用 Makefile 设置 SUID 是我的最佳选择?

最佳答案

更好的选择可能是自己编写包装器脚本,在打包前设置适当的 SUID 和 GUID 位,然后通过 scripts 分发它。设置而不是 console_scripts入口点。这为您省去了必须依赖 make 的问题。以一些额外的项目维护为代价。

另一种选择是有一个运行 os.chmod() 的安装后 Hook 或 os.fchmod()在已安装的控制台脚本上,但请记住,这不适用于 .egg 二进制发行版(或可能是 Python 3 .wheel。)This SO answer has details on that.请注意,这意味着安装程序必须以 root 用户身份运行,无论软件包实际安装到何处(包括本地环境)。

关于python - 是否可以设置由 Python setuptools 创建的 console_script 的 SUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23383216/

相关文章:

Python 2.7 比特币私钥转WIF私钥

python - ImportError:没有名为 mock 的模块

Python argv 采用通配符路径

django - 无法安装 MySQL-python

python - unittest 是否允许通过 "setup.py test"进行单一案例/套件测试?

python - 名称错误 : name 'array' is not defined in python

Python:以UTF-8从Mysql查询数据

python - 使用 iter_chunks() 从 S3 中解压缩字节 block

python - 安装工具/distutils : Installing files into the distribution's DLLs directory on Windows

python - Pandas dataframe多索引选择第一个索引第一个元素