Freigegebene Samba-Freigabe in einer anderen Freigabe freigeben

590
Joseph Dalton

Ich habe ein Verzeichnis, das über Samba freigegeben wird. Jetzt mounte ich eine Freigabe auf einem anderen Computer in einem Verzeichnis, das sich in dieser Freigabe befindet. Das Problem ist, dass diese gemountete Freigabe beim Zugriff auf die Freigabe als leeres Verzeichnis angezeigt wird.

Weiß jemand, warum dies passiert oder wie man auf die Freigabe eines anderen Computers zugreifen könnte, als wäre er Teil einer anderen Freigabe?

Beispiel hinzugefügt:

Wenn es hilft, können Sie hier ein solches Szenario erstellen:

# on host assume that we are `user1` # assume that we use `[homes]` in `smb.conf` so our home directory is shared mkdir -p d1/d2 && cd d1 # assume that there is a `host2` # with a share named `share2` and a user `user2` sudo mount.cifs -o username=user2 '//host2/share2' d2 # we check and see that it works and files from `share2` are visible ls d2 # now we try to use this share from anywhere, for example locally echo "ls d1/d2" | smbclient '\\localhost\user1' -U user1 # now we will only see an empty directory 
1
Es ist unklar, was Sie wo mitzuteilen versuchen. Bitte klären Sie Ihre Frage und zeigen Sie, welche Befehle Sie auf welchen Maschinen verwendet haben. AFH vor 7 Jahren 0
Ich habe es absichtlich so formuliert, weil es egal war, wie ich ein verschachteltes Mount in einer Samba-Freigabe erstellt habe. Ich habe es jedoch aus Gründen der Klarheit als Beispiel hinzugefügt, da Befehle leichter verständlich sind als eine Beschreibung. Joseph Dalton vor 7 Jahren 0
Danke für die Klarstellung: Es ist nicht das, was ich dachte, Sie wollten es tun. Ich betrachte das Problem, aber es fällt mir schwer, einen Test zu erstellen. AFH vor 7 Jahren 0
Eigentlich habe ich dabei etwas herausgefunden. Es scheint, dass smbclient nicht wie erwartet funktioniert; Wenn ich "ls dir" eingebe, kann ich den Inhalt nicht sehen. Ich muss cd und dann ls verwenden. Ich erhalte jedoch einen Erlaubnisfehler, wenn ich versuche, auf das .gvfs -Verzeichnis zuzugreifen. Dies war der ursprüngliche Ursprung, warum ich mit der Untersuchung begonnen habe. Gibt es einen Grund, warum dies anders ist oder wie man auf automatisch gemountete Freigaben in .gvfs zugreifen könnte? Wahrscheinlich etwas mit Sicherheit. Joseph Dalton vor 7 Jahren 0
Ich denke, es ist ein Sicherheitsproblem: Ich habe es noch nicht vollständig analysiert, aber es sieht so aus, als wäre der Benutzername für den Zugriff auf `share2 'nicht zugänglich, wenn auf` share1` als `user1` zugegriffen wird. Dies ist jedoch keine vollständige Erklärung, und ich untersuche weiter. AFH vor 7 Jahren 0
Es wird für mich extrem komisch: Ich habe der Mischung einen Windows 10-Client zum Testen hinzugefügt. Ich kann Dateien in Texteditoren anzeigen und öffnen, aber ich kann keine Dateien mit Video-Playern wie mpc öffnen. Ich bekomme immer "Datei nicht gefunden". Joseph Dalton vor 7 Jahren 0
Oh, und beim Browsen scheint ein Unterverzeichnis wie eine Datei auszusehen. Joseph Dalton vor 7 Jahren 0
Ich habe nicht herausgefunden, wie Mountpunktdaten gespeichert werden, aber [diese Antwort] (http://superuser.com/questions/200685/what-does-linux-do-with-existing-files-in-a -mount-point / 200697 # 200697) zeigt, wie Mountpunkte umgangen werden können, und ich denke, dass Ihr Beispiel ähnlich funktioniert. Die Mount-Punkte werden in `/ etc / mtab` gespeichert (verknüpft mit` proc / mount` in Debian und Derivaten), aber ich würde nicht erwarten, dass jeder Verzeichniszugriff diese Datei überprüft, selbst wenn sie gespiegelt oder im Speicher indiziert ist. obwohl es vielleicht tut. AFH vor 7 Jahren 0

1 Antwort auf die Frage

0
Joseph Dalton

Nach einer Untersuchung scheint es, als sei ein Fehler betroffen, wie hier beschrieben: https://serverfault.com/questions/491464/directories-shown-as-files-when-sharing-a-mounted-cifs-drive

Beim "Resharing" mit Samba scheint es einen Fehler zu geben: Verzeichnisse werden aufgrund eines Fehlers als Dateien angezeigt. Samba verwendet die Inode-Anzahl, um dies zu bestimmen, und CIFS setzt dies auf Null. Daher erscheinen alle Verzeichnisse als Dateien der Größe Null.

Die vorgeschlagene Lösung besteht darin, ein Kernel-Modul für Samba neu zu kompilieren, aber ich denke nicht, dass dies eine praktikable Lösung ist. Seit der Antwort sind drei Jahre vergangen, vielleicht weiß jetzt jemand eine bessere Lösung. Der ursprüngliche Fehler wurde in cifs als WILL_NOT_FIX markiert, und in Samba scheint nichts passiert zu sein.

Wenn jemand eine bessere Lösung hat, würde ich gerne von ihnen hören.