是否可以设置由Python setuptools创建的控制台脚本的SUID?

2024-03-28 14:16:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python的setuptools将某些脚本安装为控制台脚本。此脚本以www数据用户身份运行。但是脚本还需要访问只能由root用户读取的SSL证书。你知道吗

解决这个问题的一个可能的解决方案是在生成的控制台脚本上设置SUID。我可以使用Makefile手动实现这一点,但我一直在寻找一个现成的解决方案,它已经由Python生态系统中的任何打包工具提供。你知道吗

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


Tags: 工具数据用户脚本sslwww身份root
1条回答
网友
1楼 · 发布于 2024-03-28 14:16:31

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

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

相关问题 更多 >