Automatisches Erstellen/Löschen von Hard Links

Bash, Shell, PHP, Python, Perl, CGI
Anonymous

Automatisches Erstellen/Löschen von Hard Links

Post by Anonymous »

Hallo,
ich stehe vor folgendem Problem:

Ein Verzeichnis, z. B. /home/user_A/public-files/ steht im Zugriff für User A.
Ein anderes Verzeichnis, z. B. /home/public/ kann aus technischen Gründen diesem User nicht zugänglich gemacht werden, auch funktionieren Soft Links (ln -s) hier nicht.

Nun die Idee: Es soll ein Script geben, welches manuell oder automatisch per Cronjob gestartet wird und folgendes erledigt (in Pseudocode):

Code: Select all

- für jede neue Datei in /home/user_A/public-files/ lege in /home/public/ einen Hard Link an (Befehl ln) auf die neue Datei
- für jeden Hard Link in /home/public/, für den keine Datei mehr in /home/user_A/public-files/ existiert, lösche den Hard Link
- Für jede Datei, die in /home/user_A/public-files/ liegt und die einen Hard Link in /home/public hat, tue nichts.
Leider fehlt mir so die rechte Idee, wie man da ran gehen könnte. Weiß jemand weiter? Danke!

CU
ap
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09

Re: Automatisches Erstellen/Löschen von Hard Links

Post by majortermi »

Warum machst du nicht einfach einen Hardlink von /home/public auf /home/user_A/public-files/ ?
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Anonymous

Re: Automatisches Erstellen/Löschen von Hard Links

Post by Anonymous »

MajorTermi wrote:Warum machst du nicht einfach einen Hardlink von /home/public auf /home/user_A/public-files/ ?
Weil ein "ln -d" immer die Fehlermeldung ausgibt: "Operation not permitted".
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09

Re: Automatisches Erstellen/Löschen von Hard Links

Post by majortermi »

ap wrote:
MajorTermi wrote:Warum machst du nicht einfach einen Hardlink von /home/public auf /home/user_A/public-files/ ?
Weil ein "ln -d" immer die Fehlermeldung ausgibt: "Operation not permitted".
Um Hardlinks auf Verzeichnisse zu erstellen, benötigst du aus Sicherheitsgründen Root-Rechte - wenn du also als Root eingelogt bist, sollte es gehen.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Anonymous

Re: Automatisches Erstellen/Löschen von Hard Links

Post by Anonymous »

MajorTermi wrote: Um Hardlinks auf Verzeichnisse zu erstellen, benötigst du aus Sicherheitsgründen Root-Rechte - wenn du also als Root eingelogt bist, sollte es gehen.
Nein, tut es nicht. Ich war dazu natürlich als root eingeloggt.
rootmaster
Posts: 483
Joined: 2002-04-28 13:30
Location: Hannover

Re: Automatisches Erstellen/Löschen von Hard Links

Post by rootmaster »

ext2/3 unterstützt imho den hardlink auf directories nicht !

benutz anstatt dessen

mount --bind origdir linkdir

"back to the roots"
Cahn's Axiom:

When all else fails, read the instructions
[tom]
Posts: 656
Joined: 2003-01-08 20:10
Location: Berlin

Re: Automatisches Erstellen/Löschen von Hard Links

Post by [tom] »

ap wrote:

Code: Select all

- für jede neue Datei in /home/user_A/public-files/ lege in /home/public/ einen Hard Link an (Befehl ln) auf die neue Datei
- für jeden Hard Link in /home/public/, für den keine Datei mehr in /home/user_A/public-files/ existiert, lösche den Hard Link
- Für jede Datei, die in /home/user_A/public-files/ liegt und die einen Hard Link in /home/public hat, tue nichts.
Der 2. Fall ist nicht möglich - sonst wär es kein Hard Link. ;-)

[TOM]

EDIT: Hab vorhin wohl zu schnell gelsen. Jetzt weiß ich, was Du meinst.
Anonymous

Re: Automatisches Erstellen/Löschen von Hard Links

Post by Anonymous »

rootmaster wrote: mount --bind origdir linkdir
Hei, das ist genau das, was ich suchte.
Man darf beim umounten halt nur nicht vergessen, den Parameter -l anzugeben...

THX