Multiple Hardlinks auf Dateien in Verzeichnisbaum

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
kalamazoo
Beiträge: 288
Registriert: 28.08.2017 11:31:49

Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von kalamazoo » 17.08.2023 22:37:09

Nachdem jede/r ihre/seine eigene Ordnung hinsichtlich der am Server liegenden Photos haben will, überlege ich, diese alle in einem Master-Ordner abzulegen und dann für jede/n einzelne/n zu "verhardlinken" [welches Wort! auf Deutsch vielleicht: "hart zu verknüpfen"? -- also mehrere Inodes auf jede einzelne Bilddatei verweisen zu lassen]. Dann könnte jede/r im "eigenen Photoalbum" beliebig die Bilder verschieben, umbenennen oder löschen.

Spricht da irgendwas dagegen und worauf sollte ich dabei aufpassen (die Dateien wären natürlich alle auf dem gleichen Gerät)?

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von heisenberg » 18.08.2023 00:44:44

Ich würde das Hauptverzeichnis, d. h. das übergeordnete Verzeichnis, an dem die 1. Kopie aller Bilder sind bzgl. der Rechte so setzen, dass da niemand außer dem Admin rein kann. Nicht das aus Versehen jemand den letzten Hardlink löscht, d. h. manche Bilder dann endgültig löscht. Backup hilft natürlich auch dagegen.

Anonsten finde ich die Idee durchaus interessant.

Weiterhin: Wird es nicht so laufen, dass jede:r Nutzer:in auch selber Bilder hochlädt und die sind dann keine Hardlinks mehr? D. h. nach einer Zeit lang der Benutzung ist dass dann eine Mischung zwischen mehrfach hartverlinkten Dateien und solchen ohne weitere Hardlinks?
Jede Rohheit hat ihren Ursprung in einer Schwäche.

tobo
Beiträge: 1997
Registriert: 10.12.2008 10:51:41

Re: Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von tobo » 18.08.2023 00:56:29

heisenberg hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 00:44:44
Ich würde das Hauptverzeichnis, d. h. das übergeordnete Verzeichnis, an dem die 1. Kopie aller Bilder sind bzgl. der Rechte so setzen, dass da niemand außer dem Admin rein kann. Nicht das aus Versehen jemand den letzten Hardlink löscht, d. h. manche Bilder dann endgültig löscht.
Das sind Hardlinks, die muss man nicht löschen. Die kann man auch durch Verändern/Editieren unbrauchbar machen. Nur der Eigentümer sollte Schreibrechte darauf haben...

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von heisenberg » 18.08.2023 01:36:23

Das sind Hardlinks, die muss man nicht löschen. Die kann man auch durch Verändern/Editieren unbrauchbar machen. Nur der Eigentümer sollte Schreibrechte darauf haben...
Ja. Löschen und Verändern sind verschiedene Mißgeschicke, die dabei passieren können. Alle Hardlinks einer Datei haben immer die gleichen Rechte. Gegen löschen kann man - wie geschrieben, etwas tun - gegen Verändern so nicht. Kann ja auch sein, dass jemandem nicht bewusst ist, dass eine Änderung einer Datei auch Auswirkungen auf alle anderen hat.

Vielleicht ist es doch besser, allen Personen nur Leserechte darauf zu geben. Organisieren können die das dann mit einer Fotoverwaltung, die die Originalbilder nicht verändert.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

kalamazoo
Beiträge: 288
Registriert: 28.08.2017 11:31:49

Re: Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von kalamazoo » 18.08.2023 07:53:26

heisenberg hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 00:44:44
Ich würde das Hauptverzeichnis, d. h. das übergeordnete Verzeichnis, an dem die 1. Kopie aller Bilder sind bzgl. der Rechte so setzen, dass da niemand außer dem Admin rein kann. Nicht das aus Versehen jemand den letzten Hardlink löscht, d. h. manche Bilder dann endgültig löscht. Backup hilft natürlich auch dagegen.
auf den Hauptordner kann nur root zugreifen
heisenberg hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 00:44:44
Weiterhin: Wird es nicht so laufen, dass jede:r Nutzer:in auch selber Bilder hochlädt und die sind dann keine Hardlinks mehr? D. h. nach einer Zeit lang der Benutzung ist dass dann eine Mischung zwischen mehrfach hartverlinkten Dateien und solchen ohne weitere Hardlinks?
ersteres ist richtig, hochgeladen kann aber nur in den jeweils zugewiesenen "Userspace" werden; wenn gewünscht, können dann alle "privaten Originale" in den Hauptordner als Hardlinks gedoppelt werden; eine Mischung könnte es also nur auf Seiten des Benutzers geben (und auch in dem Fall, dass alle Benutzer ihren Hardlink auf eine bestimmte Datei gelöscht haben -- aber da wären immer noch alle Bilder im Master-Verzeichnis komplett, denn hier wird ja nichts gelöscht)
tobo hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 00:56:29
Das sind Hardlinks, die muss man nicht löschen. Die kann man auch durch Verändern/Editieren unbrauchbar machen. Nur der Eigentümer sollte Schreibrechte darauf haben...
könntest Du das "Unbrauchbarmachen" noch näher ausführen?

ich weiss nicht, ob ich das richtig verstehe, dass bei verschiedenen Inodes, die auf dieselbe Datei zeigen, die Metadaten (Änderungsdatum, Rechte, aber auch Besitzer und Gruppe) gleich sind, Dateiname und Pfad aber anders sein können?

falls dem so ist, dann hätten alle User nur Leserechte (e.g. 644 oder 640), somit bleibt das Original unverändert; es müsste aber jede/r die Datei umbenennen, verschieben und auch löschen können -- oder sehe ich das falsch?

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von uname » 18.08.2023 08:15:10

Leider habe ich nirgendwo gelesen, wie du überhaupt die Hardlinks erzeugst. Bei einem Backupscript vor einigen Jahren habe ich dafür die Option "--link-dest" von Debianrsync verwendet. Somit kannst du eigentlich von Dritten angelegte Ordner per rsync -av quelle ziel --link-dest=DIR ganz einfach mit diesem Parameter in deinen Admin-Ordner oder sonstwo per Hardlink hinkopieren.

Code: Alles auswählen

-link-dest=DIR         hardlink to files in DIR when unchanged

juribel
Beiträge: 188
Registriert: 20.06.2023 10:17:01

Re: Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von juribel » 18.08.2023 09:39:02

[Eintrag gelöscht]

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von uname » 18.08.2023 09:59:55

Ich habe noch mal nachgedacht. Die Idee, die ich für nicht wirklich sinnvoll halte, ist eigentlich nur der Spezialfall von inkrementellen Backups. Die Version im Master-Ordner ist die erste und einzige inkrementelle "Backup-Version" der Originaldaten. Hierbei wird für rsync beim Parameter --link-dest nicht die letzte Backup-Version wie in meinem Script oben (existiert ja nicht), sondern die Original-Version verwendet. Ich glaub ich habe das mal vor +10 oder +20 Jahren mal verwendet, um innerhalb einer "Pseudo-Kopie" einer großen Datenmenge irgendwelche Tests (Lesen und Schreiben) durchführen zu können. Das ist vor allen dann sinnvoll, wenn man vor allen Lese- und wenig Schreiboperationen durchführt.

tobo
Beiträge: 1997
Registriert: 10.12.2008 10:51:41

Re: Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von tobo » 18.08.2023 10:50:51

kalamazoo hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 07:53:26
tobo hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 00:56:29
Das sind Hardlinks, die muss man nicht löschen. Die kann man auch durch Verändern/Editieren unbrauchbar machen. Nur der Eigentümer sollte Schreibrechte darauf haben...
könntest Du das "Unbrauchbarmachen" noch näher ausführen?
Wie heisenberg schon schrieb, die Veränderung einer Datei hat auch Auswirkungen auf ihre Hardlinks:

Code: Alles auswählen

$ echo abc >f1
$ ln f1 f2
$ cat f1 f2
abc
abc
$ >f2 </dev/null
$ cat f1 f2
$

kalamazoo
Beiträge: 288
Registriert: 28.08.2017 11:31:49

Re: Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von kalamazoo » 18.08.2023 19:24:59

uname hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 08:15:10
Leider habe ich nirgendwo gelesen, wie du überhaupt die Hardlinks erzeugst. Bei einem Backupscript vor einigen Jahren habe ich dafür die Option "--link-dest" von Debianrsync verwendet. Somit kannst du eigentlich von Dritten angelegte Ordner per rsync -av quelle ziel --link-dest=DIR ganz einfach mit diesem Parameter in deinen Admin-Ordner oder sonstwo per Hardlink hinkopieren.

Code: Alles auswählen

-link-dest=DIR         hardlink to files in DIR when unchanged
über die Umsetzung habe ich mir noch keine Gedanken gemacht, die Option per Debianrsync kenne ich allerdings; und Danke für den Link zum Skript, werde ich mir vor Umsetzung noch genauer ansehen
uname hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 09:59:55
Die Idee, die ich für nicht wirklich sinnvoll halte, ist eigentlich nur der Spezialfall von inkrementellen Backups. Die Version im Master-Ordner ist die erste und einzige inkrementelle "Backup-Version" der Originaldaten. Hierbei wird für rsync beim Parameter --link-dest nicht die letzte Backup-Version wie in meinem Script oben (existiert ja nicht), sondern die Original-Version verwendet.
Welche Idee hältst Du nicht für sinnvoll, meinen Zugang mit den multiplen Inodes oder Deinen Vorschlag via Debianrsync?
Ja, im Master-Ordner liegen die Originale (wenn man bei mehreren Hardlinks überhaupt von Originalen reden kann).
tobo hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 10:50:51
Wie heisenberg schon schrieb, die Veränderung einer Datei hat auch Auswirkungen auf ihre Hardlinks:

Code: Alles auswählen

$ echo abc >f1
$ ln f1 f2
$ cat f1 f2
abc
abc
$ >f2 </dev/null
$ cat f1 f2
$
Ja, aber ohne Schreibrechte müsste es ja funktionieren, da die ursprüngliche Datei ja noch vorhanden ist. Also: alle können ihren Hardlink umbenennen, verschieben oder löschen, aber dies hätte keine Auswirkungen auf das Original im Master-Ordner, da -rw-r-----

Das zumindest würde aus meinem derzeitigen Wissensstand folgen:
kalamazoo hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 07:53:26
ich weiss nicht, ob ich das richtig verstehe, dass bei verschiedenen Inodes, die auf dieselbe Datei zeigen, die Metadaten (Änderungsdatum, Rechte, aber auch Besitzer und Gruppe) gleich sind, Dateiname und Pfad aber anders sein können?

falls dem so ist, dann hätten alle User nur Leserechte (e.g. 644 oder 640), somit bleibt das Original unverändert; es müsste aber jede/r die Datei umbenennen, verschieben und auch löschen können -- oder sehe ich das falsch?

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von uname » 18.08.2023 21:11:49

Nicht sinnvoll, da man z.B. Backups auf physisch anderen Platten macht.

kalamazoo
Beiträge: 288
Registriert: 28.08.2017 11:31:49

Re: Multiple Hardlinks auf Dateien in Verzeichnisbaum

Beitrag von kalamazoo » 19.08.2023 23:29:32

uname hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 21:11:49
Nicht sinnvoll, da man z.B. Backups auf physisch anderen Platten macht.
Es soll ja -- wie oben dargestellt -- KEIN Backup sein, sondern mehreren Personen ihren individuell gestalteten Photoordner ermöglichen, ohne die gleichen Dateien vielfach auf demselben NAS zu haben. Backup ist ein anderes Thema und klarerweise nur auf einem anderen Gerät sinnvoll. Dennoch könnte man wohl Debianrsync zum erstellen der Hardlinks verwenden. Als "Spezialfall von inkrementellen Backups" kann man es wohl insofern sehen, als es einem "Backup" ohne einer einzigen neuen Datei gliche, bei dem also überhaupt nichts gesichert sondern alles nur verlinkt wird. Der gewünschte Zweck müsste aber so erreicht werden.

Unbeantwortet ist noch meine Frage, ob die "Sicherheit" der Dateien im Masterordner dadurch gewährleistet werden kann, dass man den gewöhnlichen Benutzern die Schreibrechte entzieht. Diese könnten mit ihren Hardlink dann machen, was sie wollen (verschieben, umbenennen, löschen), der Inhalt des Originalordners bliebe davon jedoch unberührt. Ist hier irgendwo ein Denkfehler?

Antworten