Você pode criar limites por diretório, montando arquivos de imagem do sistema de arquivos em subdiretórios em /home
. Isso não desabilitará /home
, mas resolverá seu problema na medida em que evitará que as pessoas escrevam mais do que um valor fixo.
Um arquivo de imagem do sistema de arquivos funciona assim:
-
Crie um arquivo vazio de tamanho fixo, por exemplo 100 MB:
dd if=/dev/zero of=/var/home/bob.img bs=1024 count=100000
Você não precisa usar
/var/home
para estes; é um diretório que de outra forma não existiria. Esses arquivos devem ter o root e o modo de configuração 600 para que ninguém mais possa lê-los. Certifique-se, obviamente, de que você tem espaço para criar um arquivo de 100 MB para cada usuário, mas lembre-se de que você poderá eliminar tudo em/home
ao mesmo tempo e liberar esse espaço. -
Crie um sistema de arquivos na imagem:
mke2fs -m 0 /var/home/bob.img
Isso avisará você que
bob.img is not a block special device
- continue assim mesmo.Na primeira vez que você fizer isso, presumivelmente você deseja copiar na casa existente do usuário, então você terá que montá-lo temporariamente:
mount /var/home/bob.img /mnt/tmp mv /home/bob/* /mnt/tmp mv /home/bob/.* /mnt/tmp
O último perguntará se você deseja substituir .
e ..
. Não. É apenas para mover arquivos de ponto "ocultos" no nível superior, que o primeiro mv
terá deixado para trás. Você também pode usar um filebrowser ou algum outro método para fazer a mudança. /home/bob
agora deve estar vazio e você pode mover a imagem montada para lá:
umount /mnt/tmp
mount /var/home/bob.img /home/bob
/home/bob
agora é um sistema de arquivos independente, e o usuário bob
não será capaz de colocar mais de 100 MB nele . Além disso, como é um arquivo de imagem existente, esse espaço será reservado para bob e não será ocupado com mais nada.
Você precisará de um serviço init para montar todos eles no momento da inicialização; poderia ser tão simples como:
#!/bin/bash
for img in /var/home/*.img; do
name=$(basename $img .img)
mount $img "/home/$name"
done
Eles devem ser desmontados automaticamente quando o sistema for desligado. Os dados são tão seguros quanto em qualquer outro lugar.