Como proibir nomes de arquivos não-UTF-8?

4

É possível impor, no nível do sistema de arquivos, que todas as entradas de arquivo criadas tenham nomes UTF-8 válidos? Eu estou usando o Btrfs.

    
por lvella 22.05.2013 / 22:31

3 respostas

4

Não. Você teria que modificar o Linux ou a implementação do sistema de arquivos, ou usar um sistema de arquivos com filtro de passagem (talvez implementado com fusível) que reforça a restrição.

É uma boa ideia, mas provavelmente é muito difícil chegar a um consenso:

  • Os puristas da velha escola insistirão que um nome de arquivo deve ser capaz de ser qualquer sequência de bytes terminada em nul.
  • Outros dirão que, se você aplicar o UTF-8 válido, também deverá ir além e proibir outros erros do Unicode, como combinar caracteres sem caracteres base, pontos de código não atribuídos e assim por diante.
por 22.05.2013 / 22:52
2

O zfs tem uma opção utf8only mount que reforça isso.

Há um patch para adicionar isso ao ext4 , mas não parece muita resposta.

    
por 15.10.2013 / 11:30
1

O próprio sistema de arquivos (e por extensão a camada do sistema de arquivos linux) permite que qualquer caractere em um nome de arquivo seja diferente de nulo e / . Modificar o driver para remover o suporte para tais nomes é teoricamente possível, mas pode criar efeitos colaterais indesejados: por exemplo, o que acontece quando você monta um sistema de arquivos que já possui tais arquivos? Eles são invisíveis? Você tem um pânico no kernel? Você foge desses nomes em exibição? E se você escapar dos nomes, isso quebra alguma ferramenta do usuário ou torna certos arquivos inacessíveis? [veja "rootkit"]. Além disso, forking the SO significa que você tem que reconstruir manualmente para cada atualização do kernel e aplicar o seu patch de acordo - um pouco chato.

Se você quiser seguir em frente, a maneira mais fácil de fazer isso é criar a camada FUSE . Isso afeta negativamente o desempenho, mas certamente é a maneira mais fácil de começar e testar sua ideia. Você pode ler a documentação e escrever um programa desse tipo em apenas algumas horas.

    
por 23.05.2013 / 00:03