我正在开发一个用C语言编写的应用程序,需要在内部运行可执行文件,因为应用程序的性质我需要限制exe文件读取或写入任何东西到计算机。
如何限制文件访问或更改计算机上的文件?
答案 0 :(得分:3)
我认为这不一定是C问题。
一种常见的技术是在'chroot jail'中运行该程序。
如果您想自己从C程序中执行此操作,请使用chroot
系统调用(man 2 chroot)。
这两种方法都限制程序在文件系统的有限(叶子或树枝)部分运行。这会将程序限制为您希望放入该目录和子目录中的尽可能少的程序。它不能超过chroot的目录,因此系统相对安全。
这可能需要非常谨慎才能正确编程,所以我建议先尝试使用chroot命令。
不知道Windows是否具有simlar机制,但* NIX和Mac可以。
如果这是'真实的',请查看一些越狱参考,例如 http://www.unixwiz.net/techtips/chroot-practices.html
答案 1 :(得分:0)
到目前为止,最简单的方法是创建一个权限很少的新用户,然后以该用户身份运行该程序。
但是,执行此操作的方法因系统而异,linux可以运行useradd
,并且几乎可以通过windows api实现Windows。