Ok, deixe-me esclarecer: você não "montou o fusível", usou o programa de exemplo fusexmp
, que é um programa de fusível muito simples que apenas transmite todas as operações para as chamadas de biblioteca padrão do Linux. Este é apenas um programa de exemplo, e um muito chato.
Você não disse como o usuário fez essa operação de montagem, mas suponho que você fez isso como root
(porque senão allow_other
não teria funcionado e não teria criado testfile
com dono root
). Note que você pode, em princípio, montar sistemas de arquivos FUSE como qualquer usuário.
Portanto, quando o usuário test
executou touch
, primeiro ele abriu o arquivo no sistema de arquivos montado por fusível. Como você usou default_permissions
, o sistema verificou se o usuário test
tem permissão para criar arquivos nesse diretório específico (o que aparentemente foi bem-sucedido) e, em seguida, deixar fusexmp
criar o arquivo. Como fusexmp
é executado como root
, esse arquivo foi criado como root
.
Em seguida, touch
queria definir a data. Como você usou default_permissions
, o sistema verificou se o usuário test
tem permissão para definir a data nesse arquivo específico. Esse não é o caso, portanto o sistema foi abortado com um erro de permissão, não importando se o programa fusexmp
realmente seria capaz de definir a data (o que seria, executando como root).
default_permissions
, então também deve certificar-se de que seu programa de espaço do usuário crie arquivos com o proprietário correto, etc. (que fusexmp
não possui).
Se você quiser entender os sistemas de arquivos de fusíveis do ponto de vista do usuário, sugiro que experimente exemplos reais, como sshfs . Ou escreva o seu próprio programa de fusíveis e manuseie permissões, etc., você mesmo.