Samba-Freigabe - folgt symbolischem Link, befindet sich aber bereits im lokalen Pfad

Samba-Freigabe - folgt symbolischem Link, befindet sich aber bereits im lokalen Pfad

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/dbauf 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 /varund auf Server2 als eingebunden ist /server1varund 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/dbanstatt nur den Symlink zu übergeben .

Wenn der Server jedoch mit den Standardeinstellungen ausgeführt wird, ist diese Option auch unix extensions = yesstandardmäßig aktiviert. Diese Option wird deaktiviert, wide linkswenn es sich bei dem Client um ein Unix-ähnliches System handelt (wie in Ihrem Fall).

allow insecure wide links = yesDurch die Einstellung können Sie jedoch zulassen, dass der wide linksParameter auch dann funktioniert, wenn unix extensionsdie 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 linkseine wide linksvom unix extensionsClient beschreibbare Freigabe praktisch gleichbedeutend mit der Freigabe /mit Samba. Nicht empfohlen.

verwandte Informationen