允许在 C 程序中仅通过系统命令读取文件

允许在 C 程序中仅通过系统命令读取文件

program.c我有一个包含命令的C 程序system("/bin/cat file.txt"),其中file.txt是与 C 程序位于同一目录中的文件。现在我想阻止用户通过简单地读取 file.txt cat file.txt。但是,当他们运行./program 1234系统命令时应该显示file.txt内容。如何修改文件权限来执行此操作?

答案1

授予进程提升权限(在本例中,能够读取文件,而普通用户则不能)正是 SUID/SGID 的功能。请仔细阅读整个 UID/EUID 混乱,这并不完全是微不足道的。

可能为此创建一个组,使文件由该组拥有,只能由 root 写入,并且可由该组读取,并带有程序 SGID。游戏使用类似的东西来限制高分文件的写入。

相关内容