是否无法从 setuid 程序运行 mount(1) ?

是否无法从 setuid 程序运行 mount(1) ?

我有一个 setuid 程序,它需要重新挂载一个通常只读的磁盘,以便可以写入。也就是说,该程序想要运行命令

mount -o remount,rw /

但该mount命令本身是 setuid,它检查是否由 root 运行时会查看真实的用户 id,因此如果从 setuid 程序运行它会失败,并显示“只有 root 可以使用重新安装选项”或类似的内容。

难道setuid程序真的没有办法运行mountcommnd吗?

答案1

就在我发布问题时,我找到了答案。一个简单的调用

setuid(geteuid())

就在exec()of之前/bin/mount就完成了。

相关内容