Hallo zusammen, ich habe auf meinem NAS mehrere Ordner als Samba Share. Jeder Nutzer hat einen privaten Ordner den nur er mit Passwort mounten kann. Es gibt einen öffentlichen Ordner in dem Jeder (auch Gäste) lesen und schreiben dürfen. Jetzt würde ich gerne Dateien/einen Unterordner aus meinem privaten Ordner im öffentlichen Ordner freigeben - aber ohne die Dateien/Unterordner dort hin zu kopieren weil das viel Platz braucht. Am liebsten wäre mir sowas wie ein Link im öffentlichen Ordner der auf den Unterordner in meinem privaten Ordner zeigt. Allerdings soll eben der Inhalt des Links (also das worauf der zeigt) nicht modifiziert werden können aus dem öffentlichen Ordner heraus. War das halbwegs verständlich? Geht das?
:
Bearbeitet durch User
https://wiki.ubuntuusers.de/ln/ https://wiki.ubuntuusers.de/chmod/ Link setzen s.o., die Rechte vergibst Du mit chmod s.o. in Deinem Ordner so, dass nur Du schreiben kannst und die anderen nur lesen, ggf. fein eingestellt durch div. Gruppenzugehörigkeiten.
Die Befehle kenne ich schon, bin ja mit Linux aufgewachsen.
Aber so einfach ist das irgendwie nicht.
Wenn ich unter
/nas/user/
einen Ordner mache
/nas/user/test
mit der Datei drinnen
touch /nas/user/test/datei.txt
jeweils mit den Rechten -rw-r--r--
und dann einen Link nach
/nas/gast/test
setze mit
ln -s /nas/user/test /nas/gast/test
dann sehe ich
ls -l /nas/gast
> lrwxrwxrwx 1 root nogroup 27 Sep 25 14:37 test -> /nas/user/test
da ist also ein Link drinnen.
Wenn ich mich dann mit dem NAS verbinde - ohne Anmeldung, also für den
smbd als Gast, dann sehe ich im Ordner Gast den Unterordner test. Aber
ich kann ihn nicht öffen. Da bekomme ich den Fehler, dass mir die
Berechtigungen fehlen.
Ich vermute das ist so:
Wenn ich den verlinkten Ordner öffne, dann müsste mir der smbd den
Inhalt vom Ordner /nas/user/test/ anzeigen. Aber ein Gast hat da
natürlich keine Rechte, das ist ja ein privater Ordner.
In der smb.conf sieht der so aus:
[user]
path = /nas/user
writeable = yes
valid users = user
vfs objects = recycle
Das bedeutet doch für smbd, dass der den Inhalt niemandem zeigt, ausser
dem valid user - und somit natürlich auch nicht dem Gast.
Aber ich habe eine Idee, mount -bind könnte funktionieren. Da könnte ich
also mount -bind /nas/user/test /nas/gast/test machen.
:
Bearbeitet durch User
Gustl B. schrieb: > Da bekomme ich den Fehler, dass mir die Berechtigungen fehlen. Der andere Benutzer muss auf den kompletten Pfad einschließlich Unterordner bis zu Deinem Test-Ordner mindestens die Execute-Berechtigung haben. Bei Ordnern/Verzeichnissen hat das x-Flag nämlich eine andere Bewandnis als bei Executables, nämlich "Search", auf Deutsch "Durchsuchen". Siehe auch: man 2 chmod Auszug: S_IXUSR (00100) execute/search by owner ("search" applies for directories, and means that entries within the directory can be accessed) Also:
1 | chmod +x /nas # wird wohl jeder schon haben |
2 | chmod +x /nas/user # hier hattest nur Du das x-Flag |
3 | chmod +x /nas/user/test # dito |
:
Bearbeitet durch Moderator
Gustl B. schrieb: > Jetzt würde ich gerne Dateien/einen Unterordner aus meinem privaten > Ordner im öffentlichen Ordner freigeben - aber ohne die > Dateien/Unterordner dort hin zu kopieren weil das viel Platz braucht. Warum verschiebst Du sie nicht dorthin? Dann ersparst Du Dir die umständliche Links und die besondere Behandlung Deines Unterordners.
Frank M. schrieb: > Warum verschiebst Du sie nicht dorthin? Dann ersparst Du Dir die > umständliche Links und die besondere Behandlung Deines Unterordners. Gustl B. schrieb: > aber ohne die > Dateien/Unterordner dort hin zu kopieren weil das viel Platz braucht. Ausserdem hat das den Nachteil, dass ich bei jeder Änderung das nachpflegen muss. Das ist ja gerade das Schöne an Unix/Linux, dass man es sich bequem einrichten kann. Frank M. schrieb: > Der andere Benutzer muss auf den kompletten Pfad einschließlich > Unterordner bis zu Deinem Test-Ordner mindestens die > Execute-Berechtigung haben. Ja, das ist so wenn es um User auf dem Linuxrechner geht. Hier habe ich aber noch smbd dazwischen. Die Frage ist also eigentlich: Selbst wenn ich unter Linux die Rechte 777 vergebe, liefert smbd dann Inhalte von einem Ordner aus, die laut smb.conf nur für einen bestimmten Nutzer mit Anmeldung lesbar seien sollen? So ist das ja bei mir. /nas/user ist privat nur für einen Nutzer. Eingetragen in smb.conf. /nas/gast ist rw offen für Alle. Jetzt soll smbd einen Unterordner mit 755 aus /nas/user für einen beliebigen Gast als /nas/gast/unterordner ausliefern. Wie ich das sehe hat das wenig mit den Linuxrechten zu tun, denn smbd darf Inhalte unter /nas/user nur an den einen Nutzer ausliefern und nicht an Jeden. Aber ich habe das mit den Linuxrechten trotzdem probiert, hat nix gebracht. Für mich sieht das so aus als wie wenn smbd nicht nur stumpf den Ordnerinhalt von /nas/gast anguckt. Wie ist das wenn smbd Dateien/Ordner ausliefern soll die verlinkt sind? Sieht smbd das als wie wenn die Dateien am Ziel des Links oder an der Quelle des Links lägen? Wenn smbd tatsächlich den Link nachverfolgt und guckt wo die Dateien in Wirklichkeit liegen, unter /nas/user, dann darf er die nicht ausliefern. Wenn er dem Link aber nicht anchläuft, dann liegen die unter /nas/gast und er darf sie ausliefern.
:
Bearbeitet durch User
Gustl B. schrieb: > Frank M. schrieb: >> Warum verschiebst Du sie nicht dorthin? Dann ersparst Du Dir die >> umständliche Links und die besondere Behandlung Deines Unterordners. > > Gustl B. schrieb: >> aber ohne die >> Dateien/Unterordner dort hin zu kopieren weil das viel Platz braucht. > > Ausserdem hat das den Nachteil, dass ich bei jeder Änderung das > nachpflegen muss. Ich habe nicht von Kopieren gesprochen, sondern von Verschieben. Das heisst, die Dateien sind nur einmal da.
Ok, sorry mein Fehler. Ja, stimmt das geht. Aber eigentlich will ich das nicht weil da wo es ist passt das gut hin. Ich hatte gehofft, dass es eine andere elegante Lösung gibt.
Gustl B. schrieb: > Ok, sorry mein Fehler. > > Ja, stimmt das geht. Aber eigentlich will ich das nicht weil da wo es > ist passt das gut hin. Ich hatte gehofft, dass es eine andere elegante > Lösung gibt. Sieh dir mal für Samba die Option "wide links" und deren Implikationen an. Das spielt dabei auch mit. Man kann das prinzipiell mit Links machen, aber das funktioniert nicht in allen Konstellationen. Und die normalen FS-Permissions gelten natürlich auch für Samba. Die smbd-Prozesse der User (inkl. Gast -> nobody) werden ja unter ihrer uid ausgeführt, damit gelten eben die normalen Permissions als zusätzliche Einschränkung zur Samba-Konfiguration. Und dann ist da natürlich noch die Frage, welches FS zugrunde liegt und ob Samba da evtl. unter Verwendung von xattr oder Posix acls drauf zugreift, das kann auch für viel Spaß sorgen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.