Вы не можете исключить один файл. Чтобы исключить каталог, вы можете смонтировать что-нибудь поверх этого каталога, чтобы эффективно его скрыть. Тем не менее, вы должны быть осторожны, чтобы убедиться, что вы скрываете только каталог в монтировании bind, но не в оригинальном каталоге. Вы делаете это, делая первую привязку монтируемой частной. Используя команды оболочки, это выглядело бы так:
mkdir $DROOT
mkdir /tmp/empty
mount -o bind --make-private / $DROOT
mount -o bind /tmp/empty $DROOT/tmp/
В C (минус проверка ошибок):
char path_to_hide[PATH_MAX];
snprintf(path_to_hide, sizeof path_to_hide, "%s/%s", DROOT, "etc");
mkdir(DROOT, 0744);
mkdir("/tmp/empty", 0);
mount("/", DROOT, NULL, MS_BIND | MS_PRIVATE, NULL);
mount("/tmp/empty", path_to_hide, NULL, MS_BIND, NULL);