我有一个python文件,我想设置SUID标志。因此,如果任何普通用户执行它,它将以root身份执行。我知道这是一个安全问题,但我仍然需要设置SUID标志。
答案 0 :(得分:0)
你需要一个suid位的原生图像才能在现代Unix上运行。如果你真的有这个要求,我会用嵌入式Python代码编写一个C / C ++程序来清理环境,然后执行脚本。
这样做的一个好方法是使用boost :: python将Python嵌入到C ++程序中,以便您可以构建一个安全的,静态链接的图像。
根据您真正想要做的事情,另一个选择是将您的脚本变为守护进程,从已知的上下文(例如,使用daemontools)开始,然后让用户在需要完成任务时与之通信,例如使用具有适当访问控制的命名管道。
第二种选择是否合适取决于你真正需要的是什么。