CGI、Python和setgid

4 投票
1 回答
993 浏览
提问于 2025-04-16 12:37

我在Apache服务器上运行一个编译过的Python CGI脚本(使用cxfreeze)。这个脚本做了很多事情,其中之一就是调用

os.setuid(some_uid)
os.setgid(some_gid)

显然,某些用户ID和组ID是合法的,我为用户和组都设置了粘滞位,并确认它确实被设置了。但是每次调用时,我都遇到一个错误

os.setgid(int(self.gid))
OSError: [Errno 1] Operation not permitted

你可能会注意到,setuid() 调用成功了,但 setgid() 没有成功。这让我觉得很奇怪,至少对我来说是这样,虽然我承认我对Linux的权限了解不多。欢迎任何想法或建议。

我使用的环境是Apache 2.2.15,Python 2.6.5,RHEL 5.4(内核版本2.6.18)

1 个回答

3

setuid这个调用会降低你需要调用setgid的权限,所以你的调用顺序就错了。那为什么不使用一个专门用来降低权限的呢?

撰写回答