
Symlinks auf meiner Samba-Freigabe verhalten sich nicht so, wie ich es möchte – insbesondere sehen die Links so ausDuplikate regulärer Dateienzum Client-Rechner. Das hat früher funktioniert (d. h. Symlinks auf dem Server sahen aus wie Symlinks auf dem Client), aber irgendwann hat es aufgehört. Ich gehe also davon aus, dass es irgendwie mit der Samba-Version zusammenhängt, aber ich habe nie eine Kombination gefunden, die funktioniert.
Ist es überhaupt möglich, Symlinks auf Samba-Clients „wie Symlinks“ funktionieren zu lassen? Und wenn ja, wie?
Hier ist mein Setup.
Server:Synology NAS stellt eine Freigabe über Samba bereit
------server smb.conf-------
[global]
unix extensions=no
follow symlinks=yes
wide links=yes
allow insecure wide links=yes
Klient:Ubuntu 16.04-Maschine, Mounten der Freigabe mit dem folgenden Befehl
sudo mount -t cifs -o vers=3.0 -o user=<myuser> //server/sharename /mnt/mountpoint
Nachdem die Freigabe gemountet ist, gehe ich als Nächstes wie folgt vor:
Auf dem Server
$ echo "HELLO WORLD" > file-created-on-server.txt
$ ln -s file-created-on-server.txt symlink-created-on-server.txt
$ ls -iog
75852 -rwxrwxrwx+ 1 12 Jul 19 20:16 file-created-on-server.txt
75859 lrwxrwxrwx+ 1 25 Jul 19 20:53 symlink-created-on-server.txt -> file-created-on-server.txt
Das ist also offensichtlich ein symbolischer Link. Wenn ich dann jedoch ...
Auf dem Client
$ ls -iog
total 8
75852 -rwxr-xr-x 1 12 Jul 19 21:16 file-created-on-server.txt
75852 -rwxr-xr-x 1 12 Jul 19 21:16 symlink-created-on-server.txt
Ich erwarteteSymlink auf dem Server erstellt.txtZusieht aus wie ein symbolischer Link. Aber das ist nicht der Fall. Es sieht aus wie ein Duplikat der Originaldatei – sie haben sogar die gleiche Inode-Nummer auf dem Client, aber nicht auf dem Server.
Was ist hier los? Gibt es eine Möglichkeit, Symlinks einfach wie Symlinks aussehen zu lassen? Ich habe Dinge über Sicherheitsprobleme mit Samba und Symlinks gelesen und kann mir vorstellen, dass dies der Grund für die Verhaltensänderung sein könnte, aber ich habe nie eine klare Erklärung gefunden – und in diesem Fall interessieren mich die Sicherheitsimplikationen nicht.
Antwort1
Du hast
unix extensions=no
follow symlinks=yes
Das bedeutet, dass
- Der Server meldet keine Links
- Der Server folgt dem symbolischen Link.
Wahrscheinlich reicht bereits die zweite Option aus, um den symbolischen Link wie einen normalen Link zu behandeln, also als zwei Namen, die auf die gleiche Datei verweisen.