2024-03-28 14:16:31 发布
网友
我使用Python的setuptools将某些脚本安装为控制台脚本。此脚本以www数据用户身份运行。但是脚本还需要访问只能由root用户读取的SSL证书。你知道吗
解决这个问题的一个可能的解决方案是在生成的控制台脚本上设置SUID。我可以使用Makefile手动实现这一点,但我一直在寻找一个现成的解决方案,它已经由Python生态系统中的任何打包工具提供。你知道吗
这有可能吗?或者使用Makefile设置SUID是我的最佳选择?你知道吗
更好的选择可能是自己编写包装器脚本,在打包之前设置适当的SUID和GUID位,然后通过scripts设置而不是console_scripts入口点分发它。这就省去了必须依赖make而牺牲一点额外的项目维护的问题。你知道吗
scripts
console_scripts
make
另一个选择是安装一个安装后钩子,它在已安装的控制台脚本上运行os.chmod()或os.fchmod(),但请记住,这不适用于.egg二进制发行版(或者可能是Python 3.wheel.)This SO answer has details on that.注意,这意味着安装程序必须作为根运行,无论包实际安装到何处(包括本地环境)
os.chmod()
os.fchmod()
更好的选择可能是自己编写包装器脚本,在打包之前设置适当的SUID和GUID位,然后通过
scripts
设置而不是console_scripts
入口点分发它。这就省去了必须依赖make
而牺牲一点额外的项目维护的问题。你知道吗另一个选择是安装一个安装后钩子,它在已安装的控制台脚本上运行
os.chmod()
或os.fchmod()
,但请记住,这不适用于.egg二进制发行版(或者可能是Python 3.wheel.)This SO answer has details on that.注意,这意味着安装程序必须作为根运行,无论包实际安装到何处(包括本地环境)相关问题 更多 >
编程相关推荐