我需要确保某个文件在某个目录中(无论多少级)。
可视化:
A/ + file
或者
A/ + x/x/x/..../file
它必须在A以下,无论多少级。
文件路径(在加号之后)由用户提供给程序。
问题是我不能使用 chroot,因为程序还需要访问 A 之外的一些文件夹(比如说 B)但是用户(通过套接字接口连接的)不应该能够通过A/ + ../B/file
这将在内部循环中完成,因此它必须表现良好。我曾想过计算'/',提取'..'的数量,提取'/./'的数量并比较它> = 1,但它都表现不佳并且感觉容易出现错误,因为输入是由用户。
是否有一个功能可以检查我不知道的或其他方式?
编辑:
如果有一种方法可以在我 chroot 之后授予我访问文件夹B的权限(如果我没记错的话,文件句柄保留在 chroot 之后,我需要它的文件夹版本),那也没关系。我只需要访问B,在 chroot 之后在其中创建/读取/写入文件。
编辑2:
顺便说一句,我知道一种使用 UID 之类的方法,但我需要另一种方法。