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。游戏使用类似的东西来限制高分文件的写入。