hi alle
da noch niemand mit hilfreichen Tips geantwortet hat, mußte ich gezwungener Maßen selber weiter herumspielen.
Und man glaubt es kaum, aber endlich funktioniert alles so, wie ich es vor hatte, obwohl ich dazu sagen muß, daß was letztendlich dazu geführt hat, daß alles läuft, war eigentlich auf einen anderen Zweck gerichtet - aber sei's drum
Nochmal mein Problem:
Ich möchte im Ordner "Public" der Photostation den Inhalt eines bereitsvorhandenen Ordners zugänglich machen,
ohne diesen Ordner doppelt auf der Platte zu haben.
Speziell in diesem Fall ging es mir darum, einen eigentlich nur per Photostation-Konto erreichbaren Ordner (Wallpaper) im Public-Ordner darzustellen, damit ich (und andere) dort mal eben schnell ein schickes Wallpaper laden kann, ohne mich vorher zwingend anmelden zu müssen.
Mit diesem "Problem" verbunden war zuvor mein Wunsch, in bestimmten Verzeichnissen den Inhalt anderer Verzeichnisse abzubilden, zB. in den jeweiligen Benutzerverzeichnissen der DS das entsprechende Downloadverzeichnis der Downloadstation des Benutzers und bestimmte allgemeine Ablageorte zugänglich zu machen.
Im Allgemeinen wird dieser Wunsch ja mittels symbolischen Links realisiert ("
ln -s quelle ziel"), allerdings funktionierte die Auflösung nur direkt auf der Konsole. Über Samba oder die Filestation wurde der Link entweder über haupt nicht, oder nur als "Datei" angezeigt.
Gebraucht wird auf jeden Fall Zugang zur Konsole (per ssh oder Telnet, ich bevorzuge ssh und nutze dazu Putty)
Also hier nun meine Schritte:
Irgendwo (hier oder oder im Synoforum) hatte ich entdeckt, daß die Funktionalität, symbolische Links aufzulösen, in der DS auf Sicherheitsgründen abgeschaltet ist. "Sicherheit" in sofern, daß der allgemeine User wohl zu leicht versucht sein könnte, (eventuell doppelte) Dateien/Verzeichnisse zu löschen, bzw. daß Datei- und Ordnerberechtigungen auf diese Weise "ausgehebelt" werden können.
Um zB. Samba dazu zu bewegen, symbolische Links zu verfolgen, müssen in der (
/usr/syno/etc/) "
smb.conf" folgende Einträge geändert/hinzugefügt werden
Rich (BBCode):
[global]
follow symlinks=yes
unix extensions=no
wide symlinks=yes
Danach Samba neu starten mit
Rich (BBCode):
/usr/syno/etc/rc.d/S80Samba.sh restart
Danach sollten symbolische Links auch mittels smb ordentlich funktionieren
Test zB. mit
Rich (BBCode):
ln -s /volume1/public /volume1/photo/public/foo
womit im "Photo"-Ordner eine Verknüpfung auf den Ordner "/tmp" erstellt würde. Kann dann über den Explorer (oder jeden anderen Filemanager) überprüft werden, sofern man auf den "Photo"-Ordner überhaupt Zugriff hat.
Öffnet man jedoch die Photostation, ist der erstellte Link im Public-Ordner nicht zu entdecken. Auch (wiederholtes) aktualisieren der Mediendaten hilft da nicht.
Da der erstellte Link (zumindest an dieser Stelle) absolut keinen Sinn macht, entfernen wir den Link schnell wieder mit
Rich (BBCode):
rm /volume1/photo/public/foo
Lösung: "
mount --bind" anstatt einen Symlink anzulegen. Das hat jedoch einen entscheidenden Nachteil: nach jedem neustart der DS ist das eingehängte Verzeichnis wieder weg, da dieser weg, im Gegensatz zu symlinks, nicht permanent ist.
Einfach gesagt (bitte nicht steinigen
): Symlinks arbeiten direkt auf dem Dateisystem (werden also mehr oder weniger als "normale" Datei angelegt, um die sich das System nicht weiter kümmern muß) und da sie als feste "Datei" vorliegen, überstehen sie auch einen Neustart.
"mounts" dagegen arbeiten während das System läuft als "gemountetes" Laufwerk, und diese müssen ja auch bei jedem Start abgearbeitet werden (sh. fstab)
Sie setzen jedoch voraus, daß ein entsprechender "Einhängepunkt" schon vorhanden ist, also ein leeres Verzeichnis mit dem gewünschten Namen.
Im Public-Ordner der Photostation soll ein Ordner "Wallpaper" erscheinen, der irgendwo anders auch schon vorhanden ist. Also in den entsprechenden Ordner wechseln mit
Rich (BBCode):
cd /volume1/photo/public
mkdir wallpaper
mount --bind /volume1/photo/allgemein/wallpaper/ /volume1/photo/public/wallpaper/
Um solche Zuornungen nicht jedes mal neu anlegen zu müssen, muß in der Datei "/etc/rc.local" eingetragen werden, was bei jedem Start gemacht werden soll, nämlich
Rich (BBCode):
mount --bind /volume1/photo/allgemein/wallpaper/ /volume1/photo/public/wallpaper/
wobei ich voraussetze, daß der Ordner "/volume1/photo/public/wallpaper/" nicht wieder gelöscht wird.
Das funktioniert natürlich wunderbar auch mit anderen Freigaben, also zB. Music oder irgendeiner x-beliebigen Freigabe.
So. Dummerweise sieht die Photostation zu diesem Punkt den Ordner "wallpaper" noch immer nicht, und genau hier hatte ich bisher nirgends eine Lösung gefunden.
Im Zuge meiner "einarbeitung" in die DS kam ich irgendwann dazu, die "Init_3rdparty.spk" zu installieren, weil sich sonst diverse Erweiterungen nicht ordentlich nutzen lassen.
In diesem Falle ging es mir speziell um das "phpMyAdmin.spk", also installierte ich erst das "Init_3rdparty.spk" und dann den MyAdmin Teil.
Und siehe da - irgenwann stellte ich zufällig fest, daß auf einmal der "wallpaper" Ordner im public Bereich der Photostation auftaucht - das war es was ich eigentlich von Anfang an wollte.
Das Problem waren wohl die Einschränkenden Defaulteinstellungen der PHP Umgebung, was durch das "Init_3rdparty" Paket behoben wurde.
Ob der "MyAdmin" Teil was dazu beigetragen hat, wage ich zu bezweifeln, explizit probieren werde ich es nicht. "Init_3rdparty.spk" zu installieren sollte eigentlich reichen.
So, ich hoffe irgend jemand findet den Beitrag hier hilfreich und die ganzen "cracks" hier im Forum schimpfen mich nicht zu doll für meine "Vereinfachungen".
Bin übrigens immer für Richtigstellungen oder bessere Erklärungen zu haben... also wenn jemand meine Erklärung für unzureichend oder schlichtweg falsch hält - immer ran mit was besserem!
Gruß an alle