Чтобы решить эту проблему, вам, очевидно, нужна лучшая система разрешений, чем обеспечивает файловая система FAT. Это можно решить с помощью оверлейной файловой системы:
Файловая система FAT монтируется нормально и вообще недоступна для пользователя.
Разрешения обрабатываются файловой системой, которая хранит свои файлы точно так же, как файлы в файловой системе FAT, но может реализовывать дополнительные функции, такие как система разрешений.
(Я не знаю, какая файловая система будет соответствовать вашим потребностям, но я предполагаю, что можно использовать более одной, игнорируя большинство их функций.)
Эта оверлейная или объединенная файловая система - это то, к чему пользователь имеет доступ, и где вы можете устанавливать ограниченные разрешения.
Система разрешений будет обычным стилем Unix/Linux.
Используя это, вы можете просто установить разрешения только на запись для всех файлов и каталогов.
Для навигации по каталогу пользователю не нужно перечислять имена файлов и каталогов в нем; Но ему нужно получить доступ к самим каталогам .
и ..
Вы можете разрешить только то, что ему нужно, с особым видом разрешения: каталоги имеют разрешение x, как и файлы, но в первую очередь не исполняемые. Это неиспользуемое разрешение на выполнение каталога используется для обработки именно того, что вам нужно. Если бит r не установлен, но x равен, пользователь все еще может прочитать только тот маленький бит, который ему нужен здесь.
Затем пользователь не может перечислить их, но он может использовать каталоги, которые он сам знает. Он может ** cd в ** известные каталоги.
Чтобы установить правильные разрешения для новых файлов, установите ограничительный umask для пользователя.