Toon posts:

Symlink of mount vanuit meedere bronnen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een aantal hd's met dezelfde directorystructuur: /Audio, /Video en /Documenten, alleen de inhoud wijzigt.
Ik zal het maar aan de hand van een voorbeeld uitleggen:

/hda1/Audio/hda1_audio.dat
/hda1/Video/
/hda1/Documenten/telefoonlijst.txt

/hdb3/Audio/hdb3_audio.dat
/hdb3/Video/eenvideo.mpg
/hdb3/Documenten/adressen.txt

Nou wil een directory /share met inhoud:
/share/Audio/hda1_audio.dat
/share/Audio/hdb3_audio.dat
/share/Video/eenvideo.mpg
/share/Documenten/adressen.txt
/share/Documenten/telefoonlijst.txt

Ik wil niet dat de bestanden hierheen gekopieërd wordt, maar alleen te openen zijn vanaf deze locatie. Dit heb ik opgelost door een scriptje welke alle directories en bestanden mbv. find inleest en hier een symlink van maakt. Het probleem hierbij is, dat ik de directory share via m'n ftp wil kunnen benaderen. Een symlink hierheen werkt niet, aangezien /share buiten de document root van de ftp-gebruikers is. Met behulp van mount --bind ... lukt het deels; de symlinks vanuit /share kunnen niet benaderd worden, aangezien /hda1 en /hdb3 ook buiten de documentroot liggen. Ik wil niet dat de ftp-gebruikers /hda1 en /hdb3 direct kunnen benaderen. Schrijven naar /share hoeft ook niet.

Het andere wat ik geprobeerd heb is het mounten van verschillende bronnen naar één directory, maar dan wordt alleen de laatste mount gebruikt/zichtbaar.

Is het überhaupt mogelijk wat ik wil en heeft iemand een idee hoe dit het beste gedaan kan worden?

[ Voor 7% gewijzigd door Verwijderd op 17-11-2003 18:37 ]


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 26-04 15:14

deadinspace

The what goes where now?

Wat je eigenlijk wil is union mounting (evt in combinatie met binding). Daarmee kun je twee filesystems "over elkaar heen" mounten, waarbij de inhoud van beiden door elkaar zichtbaar wordt. Dit lijkt een implementatie daarvan te zijn. Ik meen wat discussie gelezen te hebben over het aanpakken van dit soort dingen in Linux 2.5, maar ik weet (helaas) niet wat daar mee gebeurd is.

Mocht union mounting niet lukken, dan lijkt het aanzetten van symlink dereferencing in je FTP server me een acceptabele workaround. Alternatief kun je de filesystems mounten (evt met binding) op losse subdirectories van /share, maar dat is niet helemaal wat je zoekt.

Verwijderd

Topicstarter
Bedankt voor de info. Translucency zou een goede mogelijkheid zijn, maar ik heb er enorm weinig documentatie gevonden. Betekent natuurlijk niet dat het niks is, maar daar kijk ik wel eens als ik wat meer tijd heb. Ik draai ook alleen stable kernels, dus dan zal ik gewoon een tijdje moeten wachten, zou wel mooi zijn als het er standaard bij in komt.

Ik gebruik ProFTPd en daar heb ik niets kunnen vinden over symlink dereferencing. Er is sowieso weinig daarover te vinden, ongeacht server. Het zal denk ik ook niet werken, aangezien de chroot() call de boel tegenwerkt. Nou is dat juist wel goed dat dat gebeurt, alleen wat jammer nu :)

Ik heb nu gewoon de root van ftp in hetzelfde pad als de bestanden gezet; de directories van /hda1 en /hdb3 onzichtbaar gemaakt en met lndir de symlinks in één directory gezet. Zo werkt het ook, al ben ik niet helemaal blij met het onzichtbaar maken van /hda1 en /hdb3. Maarja, het werkt zo, in ieder geval bedankt voor de tips waar ik kan kijken!

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Je kunt ook pure-ftpd proberen, die heeft support voor 'virtual chroot', waarmee je in tegenstelling tot het gebruik van een harde chroot() wel symlinks kunt volgen die buiten de chroot wijzen (waarnaar vervolgens direct een virtual chroot naar de nieuwe directory gedaan wordt). Ik weet niet in hoeverre dit een security/privacy issue kan zijn, maar je zou pure-ftpd met die optie kunnen overwegen.