Ich hatte gerade ein Problem, das ich nirgends finden konnte (z. B. Samba-Dokumentation).
Ich habe eine Samba-Freigabe auf Server1 und diese Freigabe ist auf Server2 gemountet. Die Freigabe von Server1 ist ein symbolischer Link zu /var/container/db
.
Das Problem besteht darin, dass beim Versuch, diesen symbolischen Link-Ordner von Server2 aus zu öffnen, meine lokalen Dateien auf Server2 angezeigt werden, da der Pfad /var/container/db
auf meinem Server2 vorhanden ist.
Was kann die Ursache dieses Problems sein und was ist die Lösung dafür?
Beide Server laufen unter Debian.
Antwort1
Wenn Sie einen Symlink zwischen Unix-ähnlichen Hosts teilen, interpretiert das System, das die Freigabe bereitstellt, den Symlink entsprechend seinem eigenen Dateisystembaum. So funktionieren Symlinks im Unix-Stil.
Wenn die Freigabe auf Server 1 das enthält, worauf der Symlink verweisen soll, können Sie einenrelativSymlink statt eines absoluten.
Wenn Ihre Samba-Freigabe auf Server1 beispielsweise lautet /var
und auf Server2 als eingebunden ist /server1var
und sich der symbolische Link auf Server1 als befindet /var/some/directory/link-to-db
, würde Ihr aktueller symbolischer Link folgendermaßen aussehen:
server1# ln -s /var/container/db /var/some/directory/link-to-db
Stattdessen könnten Sie es folgendermaßen machen:
server1# cd /var/some/directory
server1# ln -s ../../container/db link-to-db
Wenn sich die Datenbank auf Server1 nicht innerhalb der Samba-Freigabe befindet, benötigen Sie den Samba-Serverparameter wide links = yes
. Dadurch folgt Server1 dem Symlink und bietet Zugriff auf Server1, /var/container/db
anstatt nur den Symlink zu übergeben .
Wenn der Server jedoch mit den Standardeinstellungen ausgeführt wird, ist diese Option auch unix extensions = yes
standardmäßig aktiviert. Diese Option wird deaktiviert, wide links
wenn es sich bei dem Client um ein Unix-ähnliches System handelt (wie in Ihrem Fall).
allow insecure wide links = yes
Durch die Einstellung können Sie jedoch zulassen, dass der wide links
Parameter auch dann funktioniert, wenn unix extensions
die Freigabeverbindung aktiv ist -Dies wird jedoch nicht empfohlen, da es nicht sicher ist.Der Administrator auf Server1 würde die Kontrolle darüber verlieren, was freigegeben ist und was nicht, da Clients versuchen könnten, Zugriff auf jede Datei außerhalb der Samba-Freigabe zu erhalten, indem sie einfach einen geeigneten symbolischen Link auf der Freigabe erstellen, sofern diese beschreibbar ist. Dann wäre es nur noch eine Frage, ob das für die Verbindung verwendete Benutzerkonto über die Berechtigung zum Lesen der Datei verfügt oder nicht.
Im Grunde genommen ist allow insecure wide links
eine wide links
vom unix extensions
Client beschreibbare Freigabe praktisch gleichbedeutend mit der Freigabe /
mit Samba. Nicht empfohlen.