Você poderia usar algo como o SELinux, ou seccomp
, mas dado que privilégios de raiz completos permitem modificar qualquer partição sem montá-los e fazer outras coisas desagradáveis, possivelmente carregando módulos do kernel para contornar as restrições, pode não ser tão trivial . Pelo menos você precisaria de um conjunto abrangente de regras que bloqueia todos os buracos usuais.
Modificar o binário mount
ou a biblioteca C não é uma solução, já que é bastante simples chamar a chamada do sistema diretamente, sem passar por um binário pronto ou mesmo pela biblioteca.
O SELinux e os meios usuais de compartimentalização e endurecimento dificultariam a criação da raiz, o que poderia ser útil também por outras razões.
Além disso, há a pergunta sobre o que você tem nesse ponto de montagem? Se é algo relevante apenas para este sistema, então importa se alguém pode modificá-lo? Se eles obtiverem acesso administrativo total na máquina, eles podem atrapalhar todo o resto, deixar backdoors em seu rastro e provavelmente pelo menos destruir a partição em questão. Se você não espera precisar modificá-lo e apenas evitar a perda do conteúdo, seria mais fácil colocá-lo no armazenamento somente leitura. E para fazer backups.
Se o sistema de arquivos for usado por vários sistemas, provavelmente ele será montado na rede. Nesse caso, é melhor evitar as gravações no lado do servidor, portanto, não importa se o kernel tenta fazer uma montagem de leitura / gravação, ainda assim não funcionará.