• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Benutzerrechte funktionieren nicht bei Zugriff auf Samba

Hallo,

ich habe mir vor einigen Tagen einen Linux-Fileserver zusammengebaut und eingerichtet. Im Moment hänge ich noch etwas bei der Konfig von Samba.

Auf einer SATA2-Platte habe ich das Verzeichniss /fileserver angelegt,
welches root gehört (auch Gruppe root) und die Rechte 770 hat.
Unter diesem Verzeichnis liegen die Ordner:

Name: Eigentümer: Gruppe: Rechte:
daten root daten 770
software root software 770
musik root software 770
share root share 770

Ich habe unter Linux die Gruppen: daten, software, musik und share angelegt.
Folgende User sind angelegt: sgei, manu, norbi

Gruppenzuornung:

daten: sgei,root
software: sgei,root
musik: sgei,root
share: sgei,root,manu,norbi

Beim Zugriff unter Linux funktionieren die Rechte wie gewünscht.

Samba:

- alle User und Passwörter sind korrekt unter Samba angelegt

[global]
workgroup = homenet
server string = fileserver
guest account = nobody
encrypt passwords = yes
security = users

[musik]
path = /mnt/sda1/fileserver/musik
read only = no
create mask = 770
force user = root
force group = musik

[daten]
...

[software]
...

[share]
...

Nun besteht folgendes Problem:

Ich sehe auf jeden Windows Client die alle Freigaben. Darf das sein?
Ich kann mit jedem User auf alle Freigaben uneingeschränkt zugreifen.
Eigentlich sollte nur der user "sgei" auf musik, daten und Software Zugriff haben.

Was mache ich falsch???

Danke.
 
Gruppenzuornung:

daten: sgei,root
software: sgei,root
musik: sgei,root
share: sgei,root,manu,norbi

Wo machst du die Gruppenzuordnung, unter LINUX?


Mach mal folgenden Test

mkdir /fileserver/test
chmod -R 777 /fileserver/test
mkdir /fileserver/test1
chmod -R 777 /fileserver/test1

Code:
[test]
	comment = Freigabe des Test-Verzeichnisses
	path = /fileserver/test
	read only = No
	create mask = 0777
	directory mask = 0777
	browseable = Yes
	writeable = yes
	write list = sgei root 
	valid users = sgei root 

[test1]
	comment = Freigabe des Test1-Verzeichnisses
	path = /fileserver/test1
	read only = No
	create mask = 0777
	directory mask = 0777
	browseable = Yes
	writeable = yes
	write list = sgei root manu norbi  
	valid users = sgei root manu norbi

jetzt sollte manu und norbi nicht auf test1 kommen
 
Auch an euch beide wieder der gutgemeinte Rat, nicht raten sondern lesen

Einfacher währe es für den wo Hilfe sucht wenn du eine Lösung präsentierst oder die Lösungsvorschläge von anderen verbesserst wenn diese falsch sein sollten. :idea:
 
Liebes neuland,

die Lösungsvorschläge für dieses "Problem" stehen genau in dem von mir genannten Script. Solltest du allerdings zu faul zum lesen sein, bist du hier am falschen Ort. Nicht vergessen, lesen bildet, und würde dir auch nicht schaden, dein "chmod 777" öffnet nämlich Tor und Tür füt jeden, da nutzt dir auch keine Beschränkung in den "Freigabeberechtigungen".
 
Hi stummel,

Nicht vergessen, lesen bildet, und würde dir auch nicht schaden
Einem knallhart mal sagen das man blöd ist, ist zwar nicht schön aber vermutlich ehrlich - danke.

Aber die Folgende Meinung kann ich trotzdem nicht nachvollziehen (schade, lesen hilft leider nicht immer, aber vielleicht kannst du es mir ja trotzdem versuchen zu erklären). Habe übrigends diesen Skript schonmal vor drei Jahren durchgelesen.

da nutzt dir auch keine Beschränkung in den "Freigabeberechtigungen"

Aber mal rein spekulativ, man würde einfach mal diese ordner so anlegen
Code:
mkdir /fileserver/test 
chmod -R 777 /fileserver/test 
mkdir /fileserver/test1 
chmod -R 777 /fileserver/test1

und dann würde man in der [GLOBAL] noch dies eintragen:
Code:
	read only = Yes
	browseable = No
	guest ok = No
	public = No
	writeable = No
	browseable = No

und nun noch die Freigaben:

Code:
[test] 
 comment = Freigabe des Test-Verzeichnisses 
 path = /fileserver/test 
	browseable = Yes
	create mask = 0770
	directory mask = 0770
	write list = testuser1
	valid users = testuser testuser1

[test1] 
     comment = Freigabe des Test1-Verzeichnisses 
     path = /fileserver/test1
	browseable = Yes
	create mask = 0770
	directory mask = 0770
	write list = testuser
	valid users = testuser testuser1

so nun legen wir noch testuser, testuser1 und testuser2 an und gehen an eine windows kiste und schauen mal was wird dürfen.

Also bei mir durfte sich testuser2 nicht an der Freigabe anmelden und testuser1 durfte auch nur im Ordner test schreiben.

Aber natürlich ist es besser wenn man den Ordnern nur vielleicht mal 770 gibt. Oder noch weniger :?:
 
Hallo neuland,

die Berechtigungen von Samba und Linux kann man als Zweischichtsystem betrachten. Untere und ausschlaggebende Schicht = Berechtigungen auf Dateisystemebene, also Linux-Ebene. Unter Windows wohlbekannt als Sicherheitseinstellungen, also NTFS-Berechtigungen.

Obere Schicht = Freigabeberechtigungen von Samba, also wer darf über das Netzwerk was.

Die Freigabeberechtigungen sind aber kein wirklicher Schutz, das müssen wir jetzt aber hier nicht ausgiebig diskutieren. Setze Sie, oder lass sie weg, wie du willst, aber niemals nicht ein "chmod 777" und dann auf die Freigabeberechtigungen hoffen.

Du setzt immer nur soviel Rechte wie nötig.

Nach drei Jahren kann auch ein erneuter Blick in das von mir genannte Script Wunder wirken.
 
Hallo stummel,

Die Freigabeberechtigungen sind aber kein wirklicher Schutz, das müssen wir jetzt aber hier nicht ausgiebig diskutieren.

aber genau da frag ich mich ob das ganze nicht übertrieben wird.

Gib mir doch mal 1 bis 2 Beispiele wie ich die Freigabeebene überlisten kann?

Danke :shock:
 
Hallo neuland,

ich werde jetzt hier bestimmt keine Sicherheitsdiskussion beginnen. Warum Freigabeberechtigungen allein nicht ausreichen, oder welche Gefahren dort lauern kannst du ja im Internet nachlesen.
 
Hallo neuland,

wir mache es ganz einfach, fernab von irgendwelchen Hackerszenarien.
Vorher müssen wir aber noch eins klären, wir sprechen hier von einem Server in einer Produktivumgebung, und nicht von der MP3-Sammlung in deinem Wohnzimmer, OK?

Auf so einem Server fallen administrative Aufgaben an. Dazu loggen sich Mitarbeiter lokal, oder per ssh auf dem Server ein. Manche von denen haben nur minimale Berechtigungen, dürfen vielleicht nur Logdateien auswerten, oder was weiss ich für Aufgaben erledigen, aber sie befinden sich auf dem Server.

Kannst du dir vorstellen wie begeistert die Geschäftsleitung ist, wenn so ein Loglevel-Auswerter Einblick in die streng vertraulichen Papiere in deinem auf "777" gesetzten Verzeichnis bekommt?

Nächstes Beispiel, Terminalserver. Jeder Zugriff auf einen Terminalserver ist ein lokaler Zugriff. Hier haben deine Freigabeberechtigungen überhaupt keine Wirkung.

Also, von Anfang an gleich daran gewöhnen Berechtigungen so restriktiv wie möglich zu setzen.
 
Nun so können halt leicht ungereimtheiten aufkommen wenn man es nicht aus der gleichen Perspektive betrachtet.

Ich ging davon aus das wir vom normalen Benutzer ausgehen der über sein XP auf die Freigaben über Samba zugreift und nicht noch die Möglichkeit hat sich über ssh oder Terminalserver auch noch local gewalt über der Server holen kann.

Ich hoffte eigendlich auf ein BSP wie ich über Windows die Freigabeebene überliste ?

Das einer der auf den Server local Zugreifen (oder eben auf das Dateisystem über putty) natürlich dann in den Verzeichnissen alles kann, naja das ist sogar mir klar.

Aber wie gesagt, von Windowsseite aus gesehen.

Trotzdem danke für deine Geduld :oops:
 
Hallo Neuland,

jetzt haben wir genau die Diskussion die ich eigentlich vermeiden wollte. Du kannst auch den Sinn des Lebens in Frage stellen, aber bitte an einem anderen Ort.

Beispiele wie du "Freigabeberechtigungen" überlistest findest du im Internet zu genüge, aber ich werde hier dazu keine Beispiele geben, und nicht darauf verlinken.

Falls du noch sinnvolle Fragen hast helfe ich gerne, diese sinnlose Grundsatzdiskussion werde ich aber nicht weiterführen.
 
Hallo!
Nur so als Tip, wie ich das löse:
User, Gruppen, Zugänge, ACLs wenn nötig, hab ich ausschliesslich auf Linux-Filesystemebene angelegt. Wenn es da lokal funktioniert, klappt es hinterher auch in Samba. Danach werden die entsprechenden Samba-User eingerichtet.
Und schon spare ich mir chmod 0777, jede Menge Unverständlichkeiten, ein Zugriffslevel und viel Arbeit.

Gruß Uwe
 
So ist es. Viele mir bekannte Admins "sparen" sich die "Freigabeberechtigungen" zwecks Übersicht und Arbeitseinsparung komplett, und regeln die Zugriffe über das Filesystem.
 
Oben