web-dev-qa-db-fra.com

comment définir le propriétaire et l'autorisation d'un appareil créé par cryptsetup?

J'ai un volume de bouclage crypté. Je dois mount et umount le volume manuellement, donc j'utilise cryptsetup luksOpen et cryptsetup luksClose.

Cependant, sous toutes les sessions (gnome/xfce/kde/unit), lorsque j'appelle cette commande, elle affiche le périphérique/dev/mapper ...

Et puis, il permet à un utilisateur de monter (avec mot de passe), d'accéder aux fichiers et de démonter le volume.

C'est assez ennuyeux dans un serveur multi-utilisateurs (vous travaillez sur vos fichiers et le volume est démonté). Je veux que le volume soit détenu et utilisé uniquement par root et le propriétaire et pas tous les utilisateurs.

Comment puis-je définir la propriété et l'autorisation sur l'appareil?

Plus d'informations :

  • J'ai essayé chown et chmod approche qui ne donne rien.
  • Cryptsetup n'a pas d'options qui vous permettent de le faire.
  • crypttab monter automatiquement le système de fichiers au démarrage n'est pas souhaité (montage manuel uniquement)

Les autorisations que cryptsetup a mises dans le /dev/mapper/MyEncryptedVolume Son propriétaire root:root mais avec lrwxrwxrwx

quoi que je fasse (comme un chmod) ne fera rien.

C'est un appareil (/dev/mapper/MyEncryptedVolume) lié à /dev/dm-0 avec droits brw-rw----

J'ai changé les droits de /dev/dm-0 avec la règle udev mais rien ne change: le volume est toujours affiché aux utilisateurs normaux en raison du lien symbolique.

Je vous remercie

2
Antoine Rodriguez

La réalité est que Cryptsetup utilise des périphériques Loop/Losetup pour monter un fichier de bouclage sur /dev/mapper/MyEncryptedVolume.

udev peut résoudre la situation.

Il y a deux options: laissez cryptsetup choisir le périphérique de boucle ou dédiez un périphérique de boucle pour cela.

J'ai choisi la deuxième partie.

Dans cet exemple, j'utilise /dev/loop5

  1. Créez un fichier nommé 99-myspecial.rules dans le dossier /etc/udev/rules.d/
  2. insérer ceci:

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

    Cela indique à udisk (qui est le véritable fauteur de troubles dans cette situation) d'ignorer le volume, de masquer l'icône, que le volume n'est pas éjectable (c'est-à-dire que ce n'est pas un cdrom). Vous spécifiez également qu'un seul utilisateur peut accéder à ce volume.

  3. Redémarrez ensuite le service udev

  4. Ensuite, je relie le périphérique de boucle comme ceci:

    losetup /folder/myflatfile.img /dev/loop5
    

Et puis j'utilise cryptsetup comme je veux avec le périphérique de boucle comme source.

Espère que cela aide quelqu'un plus que moi.

4
Antoine Rodriguez