Como negar permissão de montagem?

2

Considere a seguinte situação:

/dev/sda1 , /dev/sda2 , /dev/sda3 são 3 partições do disco /dev/sda .

O Ubuntu está instalado em sda1 e /home montado em sda2 .

Apenas um usuário foo no sistema Ubuntu, portanto, sua pasta inicial é /home/foo on /dev/sda2 .

Estou indo (e sei como) para instalar outra distro (por exemplo, um Lubuntu) em /dev/sda3 com apenas um usuário blah .

Minha pergunta é:

Como fazer isso de tal forma que o usuário blah não possa acessar nem montar as partições /dev/sda1 e /dev/sda2 ?

É suficiente remover qualquer entrada que faça referência a fdisk ?

Gostaria de disponibilizar essas duas partições para o usuário foo no Ubuntu.

Gostaria que o usuário blah não tivesse acesso, mesmo usando sudo .

Minha idéia é que, ao instalar a nova distro em sda3 , não peça para montar as outras partições para que o disco da nova distro seja apenas sda3 .

    
por Sigur 18.12.2014 / 20:54

2 respostas

2

Há várias coisas misturadas aqui, montando um sistema de arquivos por usuário e superusuário, acessando arquivos em um sistema de arquivos montado e acessando os dados no dispositivo "bruto".

  1. montando um sistema de arquivos

    root pode sempre montar um sistema de arquivos, desde que ele possa acessar o dispositivo que o transporta - o que pode acontecer quando o kernel o reconhece. Os usuários só podem montar um sistema de arquivos, se ele for mencionado em /etc/fstab e user ou users estiver entre as opções dessa entrada (leia a página mount(8) man).

  2. acessando arquivos em um sistema de arquivos montado

    Mais uma vez, tradicionalmente root pode sempre acessar quaisquer arquivos em um sistema de arquivos montado (a menos que um kernel com patch seja usado, é claro). Os usuários estão sujeitos a permissões de arquivo.

  3. acessando dados no dispositivo bruto (por exemplo, /dev/sdaX )

    O mesmo que com os arquivos acima. Os usuários geralmente não têm permissões para acessar dispositivos de bloco brutos, root faz.

Portanto, se você quiser impedir que o usuário do segundo sistema monte ou acesse dados no sistema de arquivos montado usado pelo primeiro sistema operacional, edite /etc/fstab e aplique as permissões adequadamente. Lembre-se de que as permissões em um sistema de arquivos estão vinculadas a UIDs / GIDs e não a nomes de usuários / grupos - assim, se o usuário foo do sistema 1 tiver o mesmo UID numérico do usuário bar do sistema 2, eles terão exatamente o mesmo direito ao acessar arquivos.

Se você quiser ter certeza de que o sistema de arquivos não pode ser acessado nem mesmo por um superusuário, a criptografia é o único caminho a ser seguido.

Ou você pode executar o segundo sistema em uma máquina virtual no primeiro, dando acesso apenas a partes do disco rígido que você deseja. Existem várias maneiras de configurá-lo assim, a menos que você queira inicializar a segunda instalação também em bare-metal, você pode dar à máquina virtual todo /dev/sda3 como /dev/sda .

Uma última nota (especialmente para usuários do Ubuntu e distribuições similares que debilitam a configuração de sudo permitindo que todos os usuários executem tudo como administradores simplesmente prefixando sudo em seus comandos) - "acesso através do sudo" é um termo mal colocado - você tem ou não tem alguns (ou todos) privilégios que normalmente estão associados ao usuário root (UID 0). Você pode obter os mesmos privilégios com su .

    
por 18.12.2014 / 21:20
2

Depende se blah é uma raiz na sua instalação do sda3. Se não:

Por padrão, só é possível montar tudo na raiz, portanto, você não precisa nem sair deles do /etc/fstab . Apenas o que você deve verificar:

  1. Eles precisam do sinalizador noauto (para não montá-los na inicialização)
  2. E não deve ter o sinal user (ou eles podem ser montados pelo usuário).

Se ele é uma raiz ou tem (ou pode fazer) privilégio de root:

Então a situação é muito mais problemática. Essencialmente, o root pode fazer qualquer coisa em um sistema, e se suas partições estão lá, elas são legíveis, não há nenhuma maneira direta de evitar isso. Embora haja alguma coisa indireta que você talvez possa fazer (se elas forem úteis para você, isso depende principalmente das circunstâncias).

  1. Você pode criptografar sda1 e sda2 . Criptografar partições raiz normalmente requer um pouco de trabalho extra, mas a maioria das distribuições suporta isso. Eles palavra-chave sobre eles você tinha que começar: luks . A criptografia não impediu a destruição dessas partições, mas impediu a leitura delas. Devo mencionar também que, com o acesso direto físico, mesmo isso não impede tudo, mas pode ser bem provável.
  2. Você pode usar a instalação do sda3 em alguma solução de máquina virtual. Na instalação sda1 / sda2, você concede a ele apenas acesso de cliente, a partir da máquina virtual que você nega o acesso sda1 / sda2 direto, e sda3 será executado em uma vm. Se você limitar as premissas de vms (como root no sda1 / sda2), você limitará seus privilégios mesmo como root em sda3.
por 18.12.2014 / 21:11