Como definir um rótulo em um contêiner dm-crypt + LUKS?


12

Acabei de receber uma nova unidade flash USB e configurei 2 partições criptografadas. Eu usei o dm-crypt (modo LUKS) através cryptsetup. Com uma partição não criptografada adicional, a unidade possui a seguinte estrutura:

  • /dev/sdb1, criptografado, ocultando um sistema de arquivos ext4 chamado "Partição 1".
  • /dev/sdb2, criptografado, ocultando outro sistema de arquivos ext4, rotulado como "Partição 2".
  • /dev/sdb3, claro, sistema de arquivos ext4 visível rotulado como "Partição 3".

Como os rótulos são anexados aos sistemas de arquivos ext4, os dois primeiros permanecem completamente invisíveis, desde que as partições não tenham sido descriptografadas. Isso significa que, enquanto isso, os contêineres LUKS não têm rótulos. Isso é particularmente irritante ao usar o GNOME (automount); nesse caso, as partições aparecem como " x GB Criptografado " e " y GB Criptografado " até que eu decida desbloqueá-las.

Este não é realmente um problema de bloqueio, mas é bastante irritante, pois eu realmente gosto dos meus rótulos e gostaria de vê-los aparecer mesmo quando minhas partições ainda estão criptografadas.

Portanto, existe uma maneira de anexar etiquetas aos contêineres dm-crypt + LUKS, assim como anexamos etiquetas aos sistemas de arquivos ext4? O cabeçalho dm-crypt + LUKS tem espaço para isso? Em caso afirmativo, como posso definir um rótulo?

Observe que eu não quero expor meus rótulos ext4 antes da descriptografia, isso seria bobagem. Gostaria de adicionar outros rótulos aos contêineres, que podem aparecer enquanto os rótulos ext4 estão ocultos.


A unidade USB foi particionada com MBR ou GPT? Acredito que você pode rotular partições GPT, o que pode ajudá-lo.
amigos estão dizendo sobre garethTheRed

1
Eu menti (parcialmente) - criei uma partição GPT em um pendrive e usei gdiskpara dar um rótulo a essa partição. Quando eu criei um sistema de arquivos nessa partição, o GNOME o reconheceu apenas como um "Volume de 501 MB". Portanto, embora você possa rotulá-lo, o GNOME não reconhece os rótulos das partições; somente etiquetas do sistema de arquivos.
GarethTheRed 17/09/2015

1
@garethTheRed Você conferiu ao mesmo tempo que eu fiz então! Reformatei minha unidade usando GPT (eu havia usado fdisko modo MBR padrão) e os nomes das partições não aparecem no GNOME. No entanto, a pergunta não era realmente específica do GNOME e, embora o truque dos nomes da GPT atue em um nível inferior, ainda pode ser uma solução válida para o problema que descrevi. Vou esperar um pouco mais para ver se alguém tem uma solução atuando no nível LUKS, mas acho que os nomes das partições GPT podem ser o conteúdo de uma resposta válida.
John WH Smith

1
Os volumes LUKS não têm um nome. Eles só recebem um quando o dispositivo é mapeado, o que não pode acontecer até que você tenha fornecido a chave. Suas únicas soluções são encontrar uma maneira de informar o Gnome sobre algum nome que não seja "fisicamente" anexado ao volume ou dar um nome a um volume abrangente (por exemplo, a partição). PS: Esta pergunta é ótima aqui e seria fora de tópico sobre Segurança da Informação, uma vez que não se trata de segurança, é sobre o uso de uma ferramenta de usuário final que faz algo relacionado à segurança.
Gilles 'SO- stop be evil'

Se você definir um rótulo de partição, receberá um link simbólico com o nome apropriado /dev/disk/by-partlabel. Eu sei que isso não ajuda em ferramentas que não estão lá, mas fornece um caminho estável que você pode usar em scripts e coisas do tipo.
asciiphil

Respostas:


2

Eu acho que a solução é escrever regras do udev assim.

KERNEL=="sd*", ENV{ID_FS_UUID}=="your-sdb1-uuid", ENV{ID_FS_LABEL}="Partition_1", ENV{ID_FS_LABEL_ENC}="Partition_1"
KERNEL=="sd*", ENV{ID_FS_UUID}=="your-sdb2-uuid", ENV{ID_FS_LABEL}="Partition_2", ENV{ID_FS_LABEL_ENC}="Partition_2"

1
Funciona como um encanto! Mesmo que eu preferisse uma solução que envolva o armazenamento de informações na mídia removível, receio ter que seguir algumas configurações específicas do sistema. Além disso, a questão se tornou bastante específica quando o GNOME se envolveu: estou feliz que alguém tenha encontrado uma solução que não depende de seu comportamento.
John WH Smith

4

para uma solução permanente alterar o rótulo do recipiente , use:

sudo cryptsetup config /dev/sdb1 --label YOURLABEL

1
Pode valer a pena especificando que isso só funciona para cabeçalhos LUKS2, mas definitivamente a melhor solução
Torin

3

Este método parece ter funcionado para mim: http://www.cyberciti.biz/faq/linux-partition-howto-set-labels/

Então, se você estiver usando um sistema de arquivos EXT (eu estou usando ext4 aqui):

  1. Desbloqueie a partição LUKS.
  2. Defina o nome do sistema de arquivos desbloqueado (não da partição LUKS).

    e2label <path> <name>
    

    O pathgeneraly é /dev/mapper/<something>se usando cryptsetup. Mas no meu caso, porque eu estou usando udisks, foi /dev/dm-x, onde xestá um número.

Acho que esse método armazena as informações na mídia removível, como você queria, mas ainda não testei.


2
Obrigado, mas infelizmente isso não pode funcionar com contêineres LUKS, que ocultam todas as informações sobre seus sistemas de arquivos internos (incluindo seus rótulos). A idéia aqui foi nomear o recipiente LUKS, não o que está escondido dentro dele, para que o nome iria aparecer mesmo quando o recipiente ainda é criptografada: p (ver o meu 2º parágrafo)
John WH Smith

Ops, desculpe ... Pensei que você quisesse rotular o sistema de arquivos interno, não a partição LUKS. Talvez porque é isso que eu queria fazer quando chegasse a essa pergunta. = P
alguém

0

Encontrei a combinação das respostas de @ kristóf-szalay e @ alguém para ser o que eu quero, e adicionei algumas notas.

Especificamente:

sudo cryptsetup config /dev/sdb1 --label YOURLABEL

Na questão original da ITO, isso permitirá que o ícone no seu DM seja exibido com YOURLABEL

Se você abrir a cripta clicando duas vezes, ela será montada como

/media/user/uuid
eg:
/media/fred/e54e89a-.....

O que novamente pode causar confusão, digamos se você estiver na CLI.

Fazendo:

e2label <path> <name>

Esse nome fará com que o caminho montado assuma o valor de < name >:

/ media / fred / name

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.