Forum: PC Hard- und Software Linux Link auf Ordner mit unterschiedlichen Rechten


von Gustl B. (-gb-)


Lesenswert?

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
von Linuxxer (Gast)


Lesenswert?

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.

von Gustl B. (-gb-)


Lesenswert?

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
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

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
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

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.

von Gustl B. (-gb-)


Lesenswert?

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
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

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.

von Gustl B. (-gb-)


Lesenswert?

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.

von Ralf D. (doeblitz)


Lesenswert?

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
Noch kein Account? Hier anmelden.