Impedir o compartilhamento de unidades desmontadas

Impedir o compartilhamento de unidades desmontadas

Eu tenho um servidor de arquivos configurado para compartilhar uma unidade externa através de samba e netatalk (AFP). Eu tenho uma entrada fstab para montar automaticamente a unidade em /mnt/external, que é compartilhada automaticamente pelos vários daemons.

O problema é se a unidade não for montada corretamente (por exemplo, se eu esqueci de ligá-la ou se a levei para o trabalho naquele dia). Nesse caso, o ponto de montagem é compartilhado sem a unidade correspondente conectada, resultando na gravação de vários meta-arquivos em meu ponto de montagem, em vez de uma falha limpa. Isso evita que a unidade seja montada corretamente na próxima vez que eu a anexar (diretório não vazio) e pode levar à perda de dados se alguém usar o compartilhamento nesse meio tempo.

Existe alguma maneira de causar falha nos compartilhamentos caso a unidade seja desmontada?

Responder1

Você pode definir os atributos originais da pasta de montagem para torná-lo immutable:

chattr +i /mnt/external

A pasta agora está bloqueada e qualquer operação nela é proibida (você pode desbloqueá-la usando -i). No entanto mountou fstabainda funciona corretamente.


Certifique-se de que a unidade não esteja montada antes de executar chattr. Se você receber o erro "Inappropriate ioctl for device While reading flags", talvez você esteja trabalhando em um sistema de arquivos que não suporta atributos em pastas. Na verdade, algumas distribuições Linux montam a partição principal usando overlayfso sistema de arquivos em vez de ext. Então você tem que montá-lo manualmente em outro lugar para poder chattrtrabalhar nas pastas (ou seja, mount /dev/mmcblk0p3 /mnt/tempentão chattr +i /mnt/temp/root/mnt/external).

informação relacionada