A melhor maneira de impedir que os usuários preencham todo o espaço livre em disco do btrfs?

0

Muitos anos atrás eu tive um aplicativo que ficou fora de controle e preencheu todo o espaço em disco. Isso causou falhas de gravação nos processos do sistema que mantêm algum tipo de banco de dados (no sentido mais amplo), resultando na corrupção desses bancos de dados. Eu gostaria de evitar isso.

Usando ext2 / 3/4, uma porcentagem do espaço em disco pode ser reservada para o superusuário usando a opção -m de mke2fs exatamente para essa finalidade ("permite daemons de propriedade da raiz, como syslogd (8 ), para continuar a funcionar corretamente após processos não privilegiados serem impedidos de gravar no sistema de arquivos ").

No entanto, eu prefiro o btrfs sobre o ext2 / 3/4 para seus recursos de snapshot e o btrfs não tem essa opção. Em vez disso, há cotas de disco, mas elas tendem a causar problemas de desempenho em snapshots e também acho que não são confiáveis.

Outra ideia é ter partições separadas para espaços graváveis pelo usuário, no entanto ter partições separadas para /home , /tmp e /var/tmp (há mais locais graváveis pelo usuário?) parece um exagero e cada uma delas eles têm que ter alguma margem de segurança sobre o uso previsto separadamente, desperdiçando espaço em disco.

Existem outras opções?

    
por Zoltan 01.05.2018 / 09:17

1 resposta

1

Sua ideia de usar partições separadas é a única prática agora. No entanto, realmente não é um exagero. As pessoas têm usado partições separadas para esse fim há décadas porque funciona. Alguns conselhos gerais:

  • /home estar em uma partição separada é a configuração padrão para muitas distribuições quando não estiver usando o BTRFS, portanto, já existe um bom suporte para ele em todos os principais softwares. Essa é a grande preocupação, pois é onde 95% dos usuários colocam 95% de seus arquivos.
  • /tmp na verdade não deveria ser uma partição. Você quase certamente quer que ele seja uma tmpfs mount com seu próprio limite de tamanho. Isso geralmente melhora o desempenho e evita o desperdício de espaço em disco, já que quase nada maior que alguns KB é colocado em /tmp na maioria das vezes.
  • /var/tmp também pode ser melhor se for um tmpfs mount, especialmente se você tiver lotes de RAM e uma quantidade razoável de espaço de troca.
  • Além desses, dependendo da configuração exata do sistema, talvez seja possível aos usuários gravar quantidades arbitrárias de dados (direta ou indiretamente) em /var/lib , /var/cache , /var/games (se não houver /var/lib/games ) , /var/mail , /var/spool e, possivelmente, quaisquer diretórios de armazenamento usados para serviços de rede ( /var/www ou /var/ftp , por exemplo). Pessoalmente, gostaria apenas de colocar /var/cache , /var/spool e /var/lib em sua própria partição, e quando isso começar a ficar cheio, apenas nuke coisas em subdiretórios de /var/cache . /var/mail deve ser quase sempre a sua própria partição se você realmente usá-lo, embora o BTRFS provavelmente não seja a melhor escolha para isso.
  • Pode haver outros lugares também. O oficial FHS pode ser de algum interesse, já que ele lista o layout padrão usado por quase todo o Linux distribuições, e menciona o que vai onde.
por 01.05.2018 / 21:59