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