Хорошо, поэтому у меня есть C программа, которая принимает, как ввод пользователя, путь к файлу. Я хочу иметь возможность открыть этот файл, но только , если он находится по другому пути. Например, у меня есть такая структура каталогов:
├── forbidden-file
└── directory1
├── permitted-file1
└── directory2
└── permitted-file2
, и я хочу отклонить любые пути, которые указывают за пределы directory1
, относительно directory1
. Поэтому такие вещи, как ../forbidden-file
и directory2/../../forbidden-file
будут отклонены, но такие вещи, как permitted-file1
, directory2/../permitted-file1
и directory2/permitted-file2
будут разрешены.
Я немного изучил chroot
, но это не совсем соответствует моим потребностям, потому что мне нужно только отклонять пути, введенные пользователем, и в то же время оставлять в моей программе свободный доступ к любым файлам за пределами directory1
.
Я немного озадачен в минуту, поэтому любая помощь будет принята с благодарностью! Спасибо за ваше время и хорошего дня.