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

时间:2014-04-30 08:27:52

标签: python python-2.7 setuptools sysadmin

我有一些使用Python的setuptools作为console_scripts安装的脚本。此脚本作为www-data用户运行。但该脚本还需要访问只能由root用户读取的SSL证书。

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

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

1 个答案:

答案 0 :(得分:1)

更好的选择可能是自己编写包装器脚本,在打包之前设置相应的SUID和GUID位,然后通过scripts设置而不是console_scripts入口点进行分发。这样可以省去不得不依赖make而牺牲额外的项目维护费用的问题。

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