Vejo essas duas opções constantemente sugeridas na web quando alguém descreve como montar um tmpfs ou ramfs. Muitas vezes também com noexec, mas estou especificamente interessado em nodev e nosuid. Basicamente, odeio repetir cegamente o que alguém sugeriu, sem um entendimento real. E como só vejo instruções de copiar/colar na net sobre isso, pergunto aqui.
Isto é da documentação:
nodev - Não interpreta dispositivos especiais de bloco no sistema de arquivos.
nosuid - Bloqueia a operação dos bits suid e sgid.
Mas eu gostaria de uma explicação prática do que poderia acontecer se eu deixar esses dois de fora. Digamos que eu configurei tmpfs ou ramfs (sem essas duas opções mencionadas definidas) que é acessÃvel (leitura + gravação) por um usuário especÃfico (não root) no sistema. O que esse usuário pode fazer para prejudicar o sistema? Excluindo o caso de consumir toda a memória do sistema disponÃvel no caso de ramfs
Você não tem que seguir isso cegamente como uma regra rÃgida. Mas o raciocÃnio para situações mais focadas em segurança é o seguinte.
A
nodev
opção mount especifica que o sistema de arquivos não pode conter dispositivos especiais: Esta é uma precaução de segurança. Você não quer que um sistema de arquivos acessÃvel ao mundo do usuário como este tenha o potencial para a criação de dispositivos de caracteres ou acesso a hardware de dispositivos aleatórios.A
nosuid
opção mount especifica que o sistema de arquivos não pode conter arquivos de ID de usuário definidos. Prevenirsetuid
binários em um sistema de arquivos gravável pelo mundo faz sentido porque existe o risco de escalonamento de raiz ou outros problemas lá.Vale a pena, não uso esses parâmetros com frequência... apenas em sistemas voltados para o público onde há outras considerações de conformidade.