gpt4 book ai didi

c - 防止访问给定工作目录之外的文件

转载 作者:太空宇宙 更新时间:2023-11-03 23:32:55 24 4
gpt4 key购买 nike

我试图阻止对给定工作目录之外的文件的访问。
我的第一次尝试是使用 chdirchroot,但是 chroot 只能由 root 用户使用。

还有其他可能吗?我听说过另一个,但我不记得了。

也许是一个简单的函数来检查路径是否在工作目录或第二个参数之外。

程序的一些细节:

  • 应在 Linux 上运行
  • 没有任何交互元素的简单shell程序
  • 接受一个目录参数,即工作目录

感谢您的任何建议。

编辑:
经过一番研究,我发现了不同的方法,但我无法使用其中任何一种方法。

  • 枢轴根
  • set_fs_root(Linux 内核)

有没有可能使用它?

也许可以打开给定目录中包含的文件。因此,我使用参数文件路径和要查找的“根”路径调用该函数。

最佳答案

我假设您使用的是 Linux/MacOSX 平台。有几种方法。一种是为您的程序创建一个特殊用户,该用户拥有该目录,但对系统中的其他任何内容都没有写权限*。另一种选择是使用像 SELinux 这样的程序来只允许对程序进行某些操作,但这似乎有点过分了。

*:您必须始终授予用户读取权限。如果没有对 glibc 的读取权限,您的程序将如何运行?

关于c - 防止访问给定工作目录之外的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11345374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com