【发布时间】:2010-05-03 12:33:57
【问题描述】:
我正在尝试将 setfsuid() 与 python 2.5.4 和 RHEL 5.4 一起使用。 由于它不包含在 os 模块中,因此我将其包装在自己的 C 模块中,并使用 distutils 将其安装为 python 扩展模块。
但是,当我尝试使用它时,我没有得到预期的结果。 setfsuid() 返回值表示成功(从超级用户更改),但我无法访问只有新设置的用户才能访问的文件(使用 open()),这表明 fsuid 并未真正更改。
我尝试通过使用相同的用户输入连续运行两次 setfsuid() 来验证它是否有效 结果好像什么都没有改变,每次调用时返回的值都是旧用户 id 与新用户 id 不同的值。我还从模块和 python 脚本中调用了 getpid(),它们都返回了相同的 id。所以这不是问题。
以防万一它很重要,我应该注意我是在 Apache 守护进程 (WSGI) 中执行所有这些操作的。
谁能解释一下? 谢谢
【问题讨论】: