É possível fazer com que alguns processos do Linux vejam um conjunto diferente de dispositivos de bloco com contêineres (ou seja, sem virtualização, como KVM ou Xen)? Por exemplo, no momento da inicialização, o sistema reconhece sda
, sdb
e sdc
, então loop0
e loop1
são criados e eu quero iniciar um processo (executado como raiz) que vê apenas sdb
e loop0
, mas nenhum dos outros acima. Observe que os outros dispositivos devem permanecer ocultos, mesmo se o processo chamar mknod (2) para criar um nó de dispositivo de bloco (que deve ser bem-sucedido) e tentar abri-lo (o que deve falhar com No such device
).
Por favor, note que a montagem de um sistema de arquivos com a flag nodev
não funciona, porque um processo executado como root pode ser remontado sem esse flag.
Observe que a execução do processo como não-raiz não é uma opção, pois alguns componentes complicados do espaço do usuário estão sendo executados no sistema, o que pressupõe acesso à raiz, e seria muito caro alterar esses componentes. Reduzir as capacidades desses processos também não é uma opção.
Provavelmente isso não é possível, porque o link não contém um sinalizador CLONE_NEW...
para dispositivos de bloco. Mas talvez eu esteja sentindo falta de algo.
Tags linux containers