Para resolver isso, você obviamente precisa de um melhor sistema de permissões do que um sistema de arquivos FAT oferece. Isso pode ser resolvido usando um sistema de arquivos de sobreposição :
O sistema de arquivos FAT é montado normalmente e não é acessível a todos para o usuário.
As permissões são tratadas por um sistema de arquivos que armazena seus arquivos como arquivos no sistema de arquivos FAT, mas pode implementar recursos adicionais, como um sistema de permissões.
(Eu não sei qual sistema de arquivos corresponderia às suas necessidades - mas eu suponho que há mais de um que poderia ser usado, ignorando a maioria de seus recursos.)
Esse sistema de arquivos de sobreposição ou união é o que o usuário acessará e onde você pode definir permissões restritas.
O sistema permission seria apenas o estilo normal do Unix / Linux.
Usando isso, você pode apenas definir permissões somente de gravação em todos os arquivos e diretórios.
Para navegar em um diretório, o usuário não precisa listar os nomes de arquivo e diretório nele; Mas ele precisa acessar os próprios diretórios envolvidos - .
e ..
.
Você pode permitir exatamente o que ele precisa com um tipo especial de permissão: Diretórios têm a permissão x como arquivos , mas não são executáveis em primeiro lugar. Esta permissão de execução de diretório não usada é usada para lidar com exatamente o que você precisa . Se o bit r não está definido, mas o x é, o usuário ainda pode ler apenas o pouco que ele precisa aqui.
Então, o usuário não pode listá-los , mas ele pode usar diretórios que conhece. Ele pode ** cd em ** diretórios conhecidos.
Para definir as permissões corretas para novos arquivos, defina uma umask restrita para o usuário.