Verwenden Sie EncFS, um Dateien so zu verschlüsseln, dass ein bestimmter Benutzer oder Prozess darauf zugreifen kann, root jedoch nicht

Verwenden Sie EncFS, um Dateien so zu verschlüsseln, dass ein bestimmter Benutzer oder Prozess darauf zugreifen kann, root jedoch nicht

Ich habe einen Prozess, bei dem ich Zugriff auf ein verschlüsseltes Dateisystem haben möchte. Mit EncFS ist das ganz einfach, aber dazu muss ein Benutzer das verschlüsselte Dateisystem mounten, sodass jeder Benutzer, der Zugriff auf das mountende System hat, Zugriff auf die Daten erhält, z. B. root.

Ist es möglich, den Prozess das Dateisystem so zu mounten, dass nur er Zugriff auf die Daten hat? Wenn nicht, gibt es eine andere Möglichkeit, Personen, die die Passphrase nicht kennen, den Zugriff auf die Daten zu verwehren?

Antwort1

Was Gilles gesagt hat, ist richtig. Sie können Root nicht daran hindern, auf das Mount zuzugreifen. Es ist möglicherweise nicht möglich, direkt auf das Mount zuzugreifen (ohne die Fuse- allow_otherOption), aber es kann jederzeit zu diesem Benutzer wechseln.

Jedoch, was Sie tun können, ist, die Bereitstellung verzögert abzubrechen, nachdem der Prozess sein aktuelles Arbeitsverzeichnis in den Bereitstellungspunkt geändert hat. Sobald sich der Prozess im Bereitstellungspunkt befindet, können Sie eine verzögerte Abbruchaktion durchführen. Dadurch wird verhindert, dass neue Prozesse auf den Bereitstellungspunkt zugreifen können, aber Prozesse, die darin ausgeführt wurden, haben weiterhin Zugriff.


Beispiel

encfs /enc/source /enc/target
( cd /enc/target && some_long_running_process) &
fusermount -uz /enc/target

some_long_running_process, und alle von ihm erzeugten untergeordneten Prozesse haben vollen Zugriff auf den Einhängepunkt. Wenn jedoch irgendetwas, das kein untergeordnetes Element dieses Prozesses ist, versucht, auf den Einhängepunkt zuzugreifen, erhält es nur ein leeres Verzeichnis.


Beachten Sie, dass ein kurzes Fenster angezeigt wird, in dem der Einhängepunkt verfügbar ist und etwas anderes das Verzeichnis dorthin wechseln kann. Bei Verwendung eines Skripts ist das Fenster jedoch sehr klein.

Beachten Sie auch, dass es noch einige Möglichkeiten gibt, wie Root auf den Einhängepunkt zugreifen kann, aber diese sind nicht einfach undsehrhackig.

Antwort2

Nur der mountende Benutzer kann auf das encfs-Dateisystem zugreifen. Sogar Prozesse, die als Root ausgeführt werden, erhalten die Fehlermeldung „Zugriff verweigert“. Natürlich können sie zum mountenden Benutzer wechseln und dann auf die Daten zugreifen.

Es ist unmöglich, Daten für Root unzugänglich zu machen. Root ist per Definition allmächtig und hat Zugriff auf alles. Sie können Root genauso wenig daran hindern, auf Dateien zuzugreifen, wie Sie verhindern können, dass Gott/der Weihnachtsmann/Ihre Eltern/…¹ wissen, was Sie gestern Nacht getan haben. Wenn Sie einem Benutzer nicht vertrauen, erteilen Sie ihm nicht das Privileg, Befehle als Root auszuführen.

¹ Wählen Sie das Zutreffende aus.

Antwort3

Nun, laut dieser Frage und Antwort mit dem Titel:encfs mit erwartetem Zugriff verweigertes hört sich so an, als ob nicht einmal Root auf EncFS zugreifen kann, wenn ein bestimmter Benutzer die Bereitstellung durchgeführt hat.

Auszug

Aber es sieht so aus, als ob Sie Ihren normalen Benutzer verwendet haben, um das verschlüsselte Verzeichnis zu mounten, und dann versuchen Sie, die gemounteten Dateien mit Root und Sudo anzuzeigen. Das wird nicht funktionieren und ist der ganze Sinn von encfs.

In Ihrem Beispiel ist das Verzeichnis cr der von encfs verwendete Speicher. Der Inhalt davon ist kein großes Geheimnis, es sind verschlüsselte Daten. Sie mounten diese Daten auf mn, damit Sie deren Inhalt in menschenlesbarer Form als Dateien unter mn sehen können.

Nur der Benutzer, der cr mountet, kann den Inhalt von mn lesen. Nicht einmal root kann das.

Aber für den versierteren Benutzer spricht nichts dagegen, als Root einfach einen auszuführen su - <user>und dieser Benutzer zu werden, sodass er auf die gemountete EncFS-Freigabe zugreifen kann.

Wie auf dieser Site schon oft gesagt wurde, können Sie Root nicht daran hindern, auf lokale Elemente des Systems zuzugreifen. So funktioniert das System nun einmal. Dasselbe gilt für den Administrator eines Windows-Systems.

verwandte Informationen