Wenn Sie der einzelne Benutzer im System sind und niemand ohne Ihre Berechtigungen auf Ihren Computer zugreifen kann, können Sie den Zugriff mit diesem Befehl einfach blockieren, wie in der Antwort von Zanna angegeben :
sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt
In diesem Fall kann die Datei nur vom root
Benutzer gelesen und / oder beschrieben werden . Dies gilt als "sicher genug", wenn niemand Ihren Computer ohne Ihre Erlaubnis booten oder Ihre Festplatte anheben kann. root
In diesem Fall verwenden wir den Benutzer, da der root
Benutzer Dateien immer lesen kann, auch wenn sie keine Berechtigung haben. Durch die Verwendung des Root-Benutzers wird erzwungen, dass nur ein Benutzer darauf zugreifen kann.
Wenn Sie die Datei in irgendeiner Weise, Form oder Form als unveränderlich markieren möchten, können Sie das i
Attribut verwenden, um die Datei als unveränderlich zu markieren . In diesem Fall sind die Berechtigungen der Datei gesperrt und können unter keinen Umständen geändert werden. Auf diese Weise können Sie den folgenden Befehl ausführen, um die Datei unveränderlich zu machen und sie vor Lösch- und Berechtigungsänderungen zu schützen:
sudo chattr +i /my/secret/file.txt
Wenn Sie es ändern möchten, ersetzen Sie das +i
durch ein -i
, um die Datei vorübergehend zu entsperren. Weitere Informationen finden Sie in der Antwort von Rinzwind .
Wenn nun andere Personen Zugriff auf Ihren Computer haben (entweder Fernzugriff sudo
oder irgendeine Form von physischem Zugriff), fällt dies sofort auseinander. Ein Angreifer kann root
Ihre Datei mithilfe von Kräften lesen, einen Live-USB-Stick anschließen oder einfach Ihre Festplatte ziehen.
Daher müssen wir die Datei verschlüsseln. Ich persönlich bevorzuge die Verwendung von "Datei-Containern", damit Sie mehr darin stecken und es nach Bedarf erweitern können. chattr +i
wird weiterhin empfohlen, damit die Datei nicht versehentlich gelöscht (oder geändert) wird. Wenn Sie ein verschlüsseltes Image verwenden, können Sie Berechtigungen festlegen, mit denen andere Benutzer auf eine sehr begrenzte Teilmenge von Dateien zugreifen können, wenn der Datenträger bereitgestellt wird, was ihn für einen Server geeignet macht. Dieser Leitfaden war ursprünglich hier verfügbar und wurde für die Verwendung hier angepasst.
Zunächst möchten Sie ein Disk-Image für Ihre Verwendung erstellen. In diesem Beispiel machen wir es 5 GB.
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
Dann müssen wir Ihr Bild verschlüsseln:
sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img
Sie haben hier die Wahl, Ihr bevorzugtes Verschlüsselungspasswort einzugeben. Sobald dies erledigt ist, müssen wir das Raw-Block-Gerät verfügbar machen:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
Im Moment haben wir einen entschlüsselten Dateicontainer, aber es gibt kein Dateisystem und es ist so gut wie nutzlos. Lassen Sie uns das beheben:
sudo mkfs.ext4 /dev/mapper/my-secret-device
Jetzt brauchen wir einen Platz, um unsere neue Partition zu mounten. In diesem Fall werde ich es setzen /crypt
. Ich bin Benutzer 1000, also werde ich meine Partition so einstellen, dass ich (und root) nur lesen / schreiben kann.
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Jetzt kann ich mit meinem Datei-Tool zu navigieren /crypt
und alle meine vertraulichen Dateien dort speichern. Sobald ich fertig bin, muss ich die Bereitstellung aufheben und meine Partition neu verschlüsseln.
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Jetzt lege ich geeignete Partitionen für meine Image-Datei fest, sodass nur ich und root darauf zugreifen können und sie nicht mehr geändert werden können.
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
Wann immer ich diese Datei zum Lesen öffnen möchte, muss ich nur diese beiden Befehle ausführen, die ich leicht aliasen kann:
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
Meine verschlüsselten Daten stehen unter zur Verfügung /crypt
und sind weiterhin schreibgeschützt und nur für mich und root zugänglich.
Wenn ich die Datei ändern möchte, muss ich die Berechtigungen ändern und dann Folgendes bereitstellen:
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
Jetzt müssen Sie hier vorsichtig sein, denn wenn ein Benutzer root auf seinem System hat, kann er Ihre verschlüsselte Partition ändern / zerstören, wodurch sie unbrauchbar wird. Sie können auch Daten vom Laufwerk stehlen, jedoch nur, wenn es geöffnet ist. Sie können jedoch keine Daten stehlen oder sehen, dass Daten vorhanden sind, ohne dass Sie diese explizit öffnen. Es ist daher Ihre Pflicht, sicherzustellen, dass Ihr System sicher genug ist, dass keine Root-Benutzer online sind, wenn Sie Ihr verschlüsseltes Volume öffnen.
TL; DR :
Mach das Gewölbe:
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
Füllen Sie den Tresor:
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Schließ den Tresor ab:
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Das Gewölbe einfrieren:
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
Öffne den Tresor:
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