Si vous êtes le seul utilisateur du système et que personne ne peut raisonnablement accéder à votre ordinateur sans vos autorisations, vous pouvez simplement bloquer l'accès en utilisant cette commande, selon la réponse de Zanna :
sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt
Dans ce cas, le fichier ne peut être lu et / ou écrit que par l' root
utilisateur. Ceci est considéré comme "suffisamment sécurisé" si personne ne peut démarrer votre ordinateur sans votre permission ou soulever votre disque dur. Nous utilisons l' root
utilisateur dans ce cas, car l' root
utilisateur peut toujours lire des fichiers, même s'il n'a pas l'autorisation. En utilisant l'utilisateur root, nous garantissons qu'un seul utilisateur peut y accéder.
Si vous souhaitez marquer le fichier comme non modifiable de quelque manière que ce soit, forme ou formulaire, vous pouvez utiliser l' i
attribut pour marquer le fichier comme immuable . Dans ce cas, les autorisations du fichier sont verrouillées et ne peuvent en aucun cas être modifiées. Ainsi, vous pouvez exécuter la commande suivante pour rendre le fichier immuable et le protéger contre la suppression et les modifications d'autorisation:
sudo chattr +i /my/secret/file.txt
Si vous souhaitez le modifier, remplacez le +i
par un -i
pour déverrouiller temporairement le fichier. Voir la réponse de Rinzwind pour une vue plus approfondie.
Maintenant, si d'autres personnes ont accès à votre ordinateur ( sudo
accès à distance ou toute forme d'accès physique), cela s'effondre instantanément. Un attaquant peut utiliserroot
pouvoirs pour lire votre fichier, insérer un Live USB ou simplement tirer votre disque dur.
Par conséquent, nous devons crypter le fichier. Personnellement, je préfère utiliser des «conteneurs de fichiers», afin que vous puissiez en conserver plus et les faire croître au besoin. chattr +i
est toujours recommandé afin que le fichier ne soit pas accidentellement supprimé (ou modifié). Enfin, si vous utilisez une image chiffrée, vous pouvez définir des autorisations pour permettre aux autres d'accéder à un sous-ensemble très limité de fichiers lorsque le disque est monté, ce qui est bon pour un serveur. Ce guide était à l'origine disponible ici et a été adapté pour être utilisé ici.
Tout d'abord, vous souhaitez créer une image disque pour votre usage. Dans cet exemple, nous allons en faire 5 Go.
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
Ensuite, nous devons chiffrer votre image:
sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img
Vous aurez ici le choix d'entrer votre mot de passe de cryptage préféré. Une fois cela fait, nous devons exposer le périphérique de bloc brut:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
À l'heure actuelle, nous avons un conteneur de fichiers décryptés, mais il n'y a pas de système de fichiers, et c'est aussi bon qu'inutile. Corrigeons cela:
sudo mkfs.ext4 /dev/mapper/my-secret-device
Maintenant, nous avons besoin d'un endroit pour monter notre nouvelle partition. Dans ce cas, je vais le mettre à /crypt
. Je suis l'utilisateur 1000, donc je vais définir ma partition pour ne me permettre (et root) que de lire / écrire à partir d'elle.
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Maintenant, je peux utiliser mon outil de fichiers pour naviguer /crypt
et je peux y stocker tous mes fichiers sensibles. Une fois que j'aurai terminé, je devrai démonter et rechiffrer ma partition.
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Maintenant, je vais définir des partitions appropriées sur mon fichier image, de sorte que seuls moi et root puissent y accéder, et qu'il ne puisse plus être modifié.
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
Chaque fois que je veux ouvrir ce fichier en lecture, il me suffit d'exécuter ces deux commandes, que je peux facilement alias:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
Mes données cryptées seront disponibles sur /crypt
et resteront en lecture seule et ne seront accessibles qu'à moi et à root.
Si je souhaite modifier le fichier, je dois modifier les autorisations, puis monter:
sudo chattr -i ~/NSA-Data-Dump-20161012.img
chmod 700 ~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
Maintenant, vous devez être prudent ici, car si un utilisateur a racine sur son système, il peut modifier / détruire votre partition cryptée, la rendant inutile. Ils peuvent également voler des données du lecteur, mais uniquement lorsqu'il est ouvert. Cependant, ils ne peuvent pas voler de données ni même voir que des données existent sans que vous l'ouvriez explicitement. Par conséquent, il est de votre devoir de vous assurer que votre système est suffisamment sécurisé pour ne pas avoir d'utilisateurs root en ligne lorsque vous ouvrez votre volume crypté.
TL; DR :
Faites le coffre-fort:
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mkfs.ext4 /dev/mapper/my-secret-device
Remplissez le coffre-fort:
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Verrouillez le coffre-fort:
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Geler le coffre-fort:
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
Ouvrez le coffre-fort:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro