Ich muss Dateien in ein Linux-Dateisystem schreiben, die anschließend nicht überschrieben, angehängt, in irgendeiner Weise aktualisiert oder gelöscht werden können. Nicht von einem Sudo-er, einer Wurzel oder irgendjemandem. Ich versuche, die Anforderungen der Finanzdienstleistungsvorschriften für die Führung von Aufzeichnungen, FINRA 17A-4, zu erfüllen, die grundsätzlich erfordern, dass elektronische Dokumente auf WORM-Geräte geschrieben werden (einmal schreiben, viele lesen). Ich würde sehr gerne vermeiden, DVDs oder teure EMC Centera-Geräte verwenden zu müssen.
Gibt es ein Linux-Dateisystem oder kann SELinux die Anforderung unterstützen, dass Dateien sofort (oder zumindest bald) nach dem Schreiben vollständig unveränderlich gemacht werden müssen? Oder ist jemandem bekannt, wie ich dies mit Linux-Berechtigungen usw. in einem vorhandenen Dateisystem erzwingen kann?
Ich verstehe, dass ich schreibgeschützte Berechtigungen und das unveränderliche Attribut festlegen kann. Aber natürlich erwarte ich, dass ein Root-Benutzer diese deaktivieren kann.
Ich habe überlegt, Daten auf kleinen Volumes zu speichern, die nicht gemountet und dann schreibgeschützt erneut gemountet wurden, aber dann denke ich, dass root die Bereitstellung immer noch als beschreibbar aufheben und erneut bereitstellen kann.
Ich bin auf der Suche nach intelligenten Ideen, und im schlimmsten Fall bin ich bereit, ein wenig zu programmieren, um ein vorhandenes Dateisystem zu "verbessern", um dies bereitzustellen. Angenommen, es gibt ein Dateisystem, das ein guter Ausgangspunkt ist. Und richten Sie einen sorgfältig konfigurierten Linux-Server ein, der als diese Art von Netzwerkspeichergerät fungiert und nichts anderes tut.
Nach all dem wäre auch die Verschlüsselung der Dateien nützlich!
chattr -i filename
dann rmAntworten:
Sie können dies mit OpenAFS und schreibgeschützten Volumes tun. Es muss jedoch viel Infrastruktur installiert werden, damit es funktioniert und möglicherweise nicht den Anforderungen entspricht.
http://www.openafs.org/
Grundsätzlich gibt es einen beschreibbaren Band und eine oder mehrere schreibgeschützte Kopien des Bandes. Bis Sie das beschreibbare Volume freigeben, können die schreibgeschützten Kopien für Clients nicht geändert werden. Für die Freigabe des Volumes sind Administratorrechte erforderlich.
Es scheint, als würde jede Lösung entweder spezielle Hardware oder ein Netzwerkdateisystem erfordern, das die Semantik spezialisierter Hardware dupliziert.
quelle
Es scheint, dass es keine Möglichkeit gibt, dies zu tun, ohne benutzerdefinierten Dateisystem- / Kernel-Code zu schreiben.
Eine praktikable Lösung scheint darin zu bestehen, Amazon Glacier mit der Speicheroption WORM-Archiv zu verwenden. Laut dem offiziellen AWS-Blog unter: https://aws.amazon.com/blogs/aws/glacier-vault-lock/
Für mich bietet dies genau das, was ohne die Kosten für NetApp- oder EMC-Hardware benötigt wird, und scheint gleichzeitig die Anforderungen für die Aufbewahrung von Datensätzen zu erfüllen.
quelle
Wenn Sie lediglich von einem System aus auf Dateien zugreifen müssen, in dem Benutzer sie nicht überschreiben können, können Sie ein Remote-Volume bereitstellen, auf dem Sie keine Schreibberechtigung haben. Der einfachste Weg, dies zu tun, besteht darin, eine schreibgeschützte Samba / CIFS-Freigabe bereitzustellen.
Andernfalls besteht eine Lösung darin, einen FTP-Pfad mit FUSE curlftpfs bereitzustellen, wenn Sie eine Möglichkeit benötigen, Benutzern das Schreiben neuer Dateien zu ermöglichen (die nicht überschrieben oder geändert werden können).
Sie können Ihr proftpd-Verzeichnis mit den folgenden Anweisungen festlegen:
Auf diese Weise können neue Dateien im bereitgestellten Verzeichnis gespeichert, aber nicht mehr geändert oder entfernt werden.
Links: CurlFtpFS , ProFTPD
quelle
Dies ist eine Variation des Problems " Infalible Backup ". Die einzige Möglichkeit, es zu implementieren, besteht in mehreren Remote-Wurm-Dateisystemen, die Prüfsummen verwenden und gemeinsam nutzen und keinen gemeinsamen physischen oder Administrationszugriff haben. Dies stellt sicher, dass alles einmal geschrieben, dupliziert, die Integrität nachweisbar und im Fall eines einzelnen Blocks, der gelöscht, geändert oder beschädigt wird, wiederherstellbar ist.
Plan9 oder seine Derivate können alle erforderlichen Funktionen implementieren. Siehe Plan9 und Venti
quelle