É uma restrição histórica e de segurança.
Historicamente, a maioria das unidades não era removível. Por isso, fazia sentido restringir a montagem a pessoas com acesso físico legítimo e, provavelmente, teriam acesso à conta raiz. As entradas do fstab permitem que os administradores deleguem a montagem para outros usuários para unidades removíveis.
Do ponto de vista da segurança, há três grandes problemas em permitir que usuários arbitrários montem dispositivos de bloco arbitrários ou imagens do sistema de arquivos em locais arbitrários.
- A montagem em um local que não pertence obscurece os arquivos nesse local. Por exemplo: monte um sistema de arquivos de sua escolha em
/etc
, com um/etc/shadow
contendo uma senha root que você conhece. Isso é corrigido permitindo que um usuário monte um sistema de arquivos apenas em um diretório que ele possui. - Os drivers do sistema de arquivos muitas vezes não foram testados tão completamente com o sistema de arquivos malformado. Um driver de sistema de arquivos com bugs pode permitir que um usuário que forneça um sistema de arquivos malformado injete código no kernel.
- Montar um sistema de arquivos pode permitir que o montador faça com que alguns arquivos apareçam que ele não teria permissão para criar. Os arquivos executáveis e de dispositivo do Setuid são os exemplos mais óbvios, e são corrigidos pelas opções
nosuid
enodev
, que estão implícitas por teruser
in/etc/fstab
.
Até agora, aplicaruser
quandomount
não é chamado pela raiz é suficiente. Mas, em geral, ser capaz de criar um arquivo pertencente a outro usuário é problemático: o conteúdo desse arquivo pode ser atribuído pelo proprietário em vez do montador. Uma cópia casual de preservação de atributos por raiz para um sistema de arquivos diferente produziria um arquivo pertencente ao proprietário declarado, mas não envolvido. Alguns programas verificam se uma solicitação para usar um arquivo é legítima, verificando se o arquivo pertence a um usuário específico, e isso não seria mais seguro (o programa também deve verificar se os diretórios no caminho de acesso pertencem a esse usuário; se a montagem arbitrária for permitida, eles também deverão verificar se nenhum desses diretórios é um ponto de montagem em que a montagem não foi criada nem pela raiz nem pelo usuário desejado).
Para fins práticos, é possível montar um sistema de arquivos sem ser root, através do FUSE . Os drivers FUSE são executados como usuário de montagem, portanto, não há risco de escalonamento de privilégios explorando um bug no código do kernel. Os sistemas de arquivos FUSE só podem expor arquivos que o usuário tenha permissão para criar, o que resolve o último problema acima.