GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Daten in Dateisystemen verstecken?

Ich möchte einige Dateien so verstecken, dass nicht einmal ls -a kann es finden. Ich spreche nicht davon, „.“ vor dem Dateinamen hinzuzufügen.
Ich habe darüber nachgedacht, ob ich separate Systemaufrufe für den Zugriff auf diese Dateien erstellen könnte. Die eigentliche Notwendigkeit besteht darin, einige Protokolldateien vor dem Benutzer zu verbergen. Ich speichere die MAC-Daten einiger Dateien und möchte nicht, dass der Benutzer diese Protokolldateien sieht. Derzeit kenne ich nur eine Möglichkeit, Daten zu verbergen, nämlich durch Hinzufügen von „.“ vor dem Dateinamen. Aber die Datei kann vom Benutzer durch den einfachen Aufruf ls -a eingesehen werden . Ich möchte also wissen, ob es eine andere Möglichkeit gibt, diese Protokolldaten zu verbergen?

Akzeptierte Antwort:

Wie andere angemerkt haben, ist das Verstecken wahrscheinlich der falsche Ansatz, wenn der Zweck darin besteht, den Zugriff auf eine persistente Datei zu verhindern. In diesem Fall kann der Einsatz geeigneter Zugriffskontrollmaßnahmen oder sogar Kryptografie, wenn die Anwendung dies rechtfertigt, eine Lösung sein. Auf der anderen Seite das Erstellen von „versteckten“ temporären Dateien ist ein absolut legitimer Anwendungsfall.

Unter Linux wird seit der Kernel-Version 3.11 das open() Systemaufruf unterstützt die O_TMPFILE -Flag, das verwendet werden kann, um unbenannte temporäre Dateien zu erstellen. Wenn dieses Flag verwendet wird, wird der Pfadname Argument für open() wird verwendet, um ein Verzeichnis anzugeben, unter dem ein unbenannter Inode erstellt wird. Jedoch als hauptsächlicher Anwendungsfall für O_TMPFILE ist, wie der Name schon sagt, die Erstellung von temporär Dateien, ist dies nicht für die dauerhafte Speicherung geeignet, da die Datei verloren geht, wenn der letzte Dateideskriptor der Datei geschlossen wird, es sei denn, der Datei wird ein Name gegeben. Mit dem linkat() kann der Datei ein Name gegeben werden Systemaufruf, es sei denn, O_EXCL Flag wurde zusätzlich zum O_TMPFILE angegeben , in diesem Fall wird die Verknüpfung der Datei mit dem Dateisystem verhindert.

Das kürzlich hinzugefügte O_TMPFILE Die Funktionalität ist wichtig, da sie verwendet werden kann, um temporären Dateien die folgenden Eigenschaften zu verleihen:

  1. Race-Condition-freie Erstellung.
  2. Automatisches Löschen beim Schließen.
  3. Über keinen Pfadnamen erreichbar.
  4. Nicht anfällig für Symlink-Angriffe.
  5. Der Anrufer muss sich keine eindeutigen Namen ausdenken.

Außerdem kann die Funktionalität verwendet werden, um Dateien zu erstellen, die anfänglich unsichtbar sind, wobei zu diesem Zeitpunkt geeignete Dateisystemattribute an der Datei angepasst werden können, bevor sie in einer atomaren Operation mit dem Dateisystem verknüpft wird. Dies kann verwendet werden, um bestimmte TOCTOU-Rennbedingungen zu vermeiden.

Verwandte:CSV-Daten von URL in Google Spreadsheet ziehen?

Ein Nachteil bei O_TMPFILE Flag ist, dass nur eine Untergruppe von Dateisystemen dies unterstützt. Ursprünglich wurde Unterstützung in den Dateisystemen ext2, ext3,
ext4, UDF, Minix und shmem bereitgestellt. XFS-Unterstützung wurde in Linux 3.15 hinzugefügt.


Linux
  1. Kopieren Sie Dateien im Linux-Terminal

  2. Verschieben Sie Dateien im Linux-Terminal

  3. Pseudodateien für temporäre Daten?

  4. Werden Dateien sequentiell auf der Festplatte gespeichert?

  5. MySQL-Daten können nicht in Datei ausgegeben werden

So benennen Sie eine Datei (en) in Linux um

Bash-Scripting:So lesen Sie Daten aus Textdateien

Ext4-Datenwiederherstellung?

Dateimanager vs. FTP

Übertragen Sie Dateien mit WinSCP

So komprimieren Sie eine Datei unter Linux