como definir proprietário e permissão para um dispositivo feito cryptsetup?

2

Eu tenho um volume de loopback criptografado. Eu preciso de mount e umount do volume manualmente, então eu uso cryptsetup luksOpen e cryptsetup luksClose .

No entanto, em todas as sessões (gnome / xfce / kde / unity), quando invoco este comando, aparece o dispositivo / dev / mapper ...

E então ele permite que o usuário monte (com senha), acesse arquivos e desmonte o volume.

É bastante irritante em um servidor multiusuário (você está trabalhando em seus arquivos e o volume está sendo desmontado). Eu quero que o volume seja de propriedade e usado apenas pelo usuário root e pelo proprietário, e não por todos os usuários.

Como posso definir propriedade e permissão no dispositivo?

Mais informações:

  • Eu tentei chown e chmod abordagem que não dá nada.
  • O Cryptsetup não tem nenhuma opção que permita fazer isso.
  • crypttab auto mount o sistema de arquivos na inicialização que é indesejado (somente montagem manual)

As permissões que o cryptsetup coloca no /dev/mapper/MyEncryptedVolume é o proprietário root:root , mas com lrwxrwxrwx

tudo que eu faço (como um chmod) não faz nada.

É um dispositivo ( /dev/mapper/MyEncryptedVolume ) vinculado a /dev/dm-0 com direitos brw-rw----

Alterei os direitos da regra /dev/dm-0 with udev , mas nada mudou: o volume ainda é exibido para usuários normais devido ao link simbólico.

Obrigado

    
por Antoine Rodriguez 13.10.2012 / 14:12

1 resposta

4

A realidade é que o Cryptsetup usa Loop devices / Losetup para montar um arquivo de loopback em /dev/mapper/MyEncryptedVolume .

udev pode resolver a situação.

Existem duas opções: deixar o cryptsetup escolher o dispositivo loop ou dedicar um dispositivo de loop para isso.

Eu escolhi a segunda parte.

Neste exemplo, uso /dev/loop5

  1. Crie um arquivo chamado 99-myspecial.rules na pasta /etc/udev/rules.d/
  2. insira isto:

    KERNEL=="loop5" MODE="0600" OWNER="MyUser" GROUP="MyGroupUser" ENV{UDISKS_IGNORE}="1" ENV{UDISKS_PRESENTATION_HIDE}="1" ENV{ID_DRIVE_EJECTABLE}="0"

    Isto diz a udisk (que é o verdadeiro criador de problemas nessa situação) ignorar o volume, esconder o ícone, o volume não é ejetável (também não é um cdrom). Você também especifica que apenas um usuário pode acessar esse volume.

  3. Em seguida, reinicie o serviço do udev

  4. Então eu vinculo o dispositivo de loop assim:

    losetup /folder/myflatfile.img /dev/loop5
    

E então eu uso cryptsetup como eu quero com o dispositivo de loop como fonte.

Esperanças que ajudam alguém mais do que eu.

    
por Antoine Rodriguez 15.10.2012 / 21:19