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

Gruppenrechte unter Samba

G

Guest

Gast
Hallo,

wie kann ich folgendes Scenario unter samba 3.0 abbilden?

user a1-9 - Gruppe a
user b1-9 - Gruppe b
user c1-9 - Gruppe c
user d1-9 - Gruppe d

Folgende Rechte möchte ich auf den Ordner xy haben:
Gruppe a - lesen und schreiben
Gruppe b - lesen
Gruppe c - keine rechte
Gruppe d - lesen und schreiben
 

Oli-nux

Hacker
Hab da noch ein paar Fragen ;)!
Warum legst du nciht verschiedene Ordner an und lässt Gruppe a in den Ordner A, Gruppe b in den ordner B usw. ?
Dann könnte man das mit der Rechtevergabe auch einfacher lösen ;).

Hast du die User user a 1-9, user b 1-9 usw. schon angelegt und möchtest diese nur nachträglich einer Gruppe hinzugfügen oder musst du die User auch noch anlegen?
 

Oli-nux

Hacker
Vorweg: Keine Garantie auf 100%ige Richtigkeit!

Hier wie man das mit den Usern und Gruppen machen könnte/kann:

Möglichkeit Nr.1 = User sind noch nicht angelegt:
useradd -m <username1>
smbpasswd -a <username1>

Möglichkeit Nr.2 = 10 User aufeinmal anlegen, z.b. durchnummeriert mit smb1 - 10 und in die Gruppe smbgrp1 aufnehmen:
for i in 1 2 3 4 5 6 7 8 9 10
do
useradd -G smbgrp1 smb$i
smbpasswd -a smb$i <einheitliches Passwort>
done

oder:
for i in 1 2 3 4 5 6 7 8 9 10; do useradd -G smbgrp1 smb$i; smbpasswd -a smb$i <einheitliches Passwort>; done

Möglichkeit Nr.3 = User die angelegt sind, einer Gruppe hinzufügen:
vi /etc/group und darin dann die User der Gruppe hinzufügen.

Jetzt zu den Ordner-Rechten:
OrdnerA für GruppeA lesbar und schreibbar machen:
chgrp <GruppennameA> OrdnerA
chmod 770
Andere Benutzer werden ausgeschlossen!

OrdnerB für GruppeB lesbar machen:
chgrp <GruppennameB> OrdnerB
chmod 740
Andere Benutzer werden ausgeschlossen!

OrdnerC für GruppeC keine Rechte:
chmod 700
Andere Benuter werden ausgeschlossen!

OrdnerD für GruppeD lesen und schreiben:
chgrp <GruppennameD> OrdnerD
chmod 770
Andere Benutzer werden ausgeschlossen!

Solltest du Fragen zu den chmod-Rechten haben, dann stell sie ;)!
 
OP
G

Guest

Gast
Glaube nicht das du mich richtig verstanden hast.


es ist nur ein ordner für den diese gruppen unterschiedlichen zugriff haben sollen

das mit dem anlegen der user und gruppen ist mir klar

aber wie gebe ich einem ordner unterschiedliche rechte für 4 verschiedene gruppen?
 

Oli-nux

Hacker
haasi schrieb:
aber wie gebe ich einem ordner unterschiedliche rechte für 4 verschiedene gruppen?

Das weiss ich jetzt leider auch nicht auswendig.
Kennst du SWAT?
http://gertranssmb3.berlios.de/output/SWAT.html

Ansonsten kann man das auch direkt in smb.conf machen ;).

Hmm, evtl. heisst der Eintrag dann so:
[Ordnerxy]
path=/smb/Ordnerxy
create mask=770
directory mask=770
writeliste=@GruppeA, @GruppeD

somit können alle Gruppen den Order "betreten" und darin lesen, aber nur GruppeA und GruppeD können zusätzlich schreiben!
"Normale" Benutzer sind ausgeschlossen und haben keine Rechte!

Bzw. create mask=660

Bitte verbessern, falsch ich falsch liege!
 

larus

Newbie
Hallo,
du kannst für jede Gruppe eine eigene smb.conf anlegen und in diesen dann die Share entsprechend einstellen:
smb.conf.a
[ordnerxy]
path=/ordnerpfad
write ok = yes
...

smb.conf.b
[ordnerxy]
path=/ordnerpfad
readonly = yes
...

smb.conf.c
keine Share [Ordnerxy]

smb.conf.d
wie bei a

die smb.confs mit
include smb.conf.%G
in der smb.conf aufrufen
oder mit
config file=smb.conf.%G
die smb.conf ersetzen
 
OP
G

Guest

Gast
d.h. für jeden ordner eine eigene freigabe?

sagt mir nicht, dass dies unter win2k ntfs besser gelöst ist.....

ich will eine freigabe haben - zig ordner und unterordner und für jeden ordner evtl. auch unterordner solche berechtigungen setzen

ist eine vorgabe in unserer firma

dass beim einsatz von linux unter win2k dom mehr admin-aufwand entsteht ist mir schon klar - es muss nur mindestens dass funzen, was wir jetzt im einsatz haben ( dank linux - möglichst besser, schneller und stabiler)
 
A

Anonymous

Gast
larus schrieb:
Hallo,
du kannst für jede Gruppe eine eigene smb.conf anlegen und in diesen dann die Share entsprechend einstellen:
smb.conf.a
[ordnerxy]
path=/ordnerpfad
write ok = yes
...

Hallo Iarus, ich hab ja schon viel über Samba gelesen, aber diese Variante ist mir neu. Dir ist schon klar das die smb.conf die Konfigurationsdatei des Servers ist, oder? Und die gibt es nur einmal. Wie soll das deiner Meinung nach ablaufen. Für jede Gruppe wird der Server umkonfiguriert? Ich glaub da hast du irgendetwas verwechselt.
 
A

Anonymous

Gast
Hallo Hasi,

Damit sprichst du die feine Unterteilung von Rechtevergaben an. Leider ist es nun mal so das Samba nicht alle Feinheiten von Windows-Servern beherrscht. Das trifft auch auf die Berechtigungen zu. Du hast die Möglichkeit eine ACL-Funktion in Samba zu implementieren, die bringt aber wieder andere Nachteile mit sich.

Leider ist mit Samba noch nicht alles 100% umsetzbar was mit Windows-Servern möglich ist.

Deine Vorgabe ist aber noch nicht ganz so problematisch. Das kannst du noch mit der Read-List und der Write-List Vorgabe in Swat lösen. Das von mir oben angesprochene Szenario tritt dann ein wenn ein User Mitglied in mehreren Gruppen ist.
 

larus

Newbie
Hallo,
natürlich gibt es nur eine smb.conf:
gemeint ist folgendes :

[global]
alle wichtigen Einstellungen, dann als letzte Zeile
include= smb.conf.%G => Reinkopieren von smb.conf.a smb.conf.b usw

[nächste Share]
...

wenn nun smb.conf.a so aussieht:
[Verzeichnis]
pfad=/pfadangabe zum Ordner
write ok =yes

wird diese Share nur für Gruppe a in die smb.conf eingebunden.
dito für die Gruppen b,c,d
 
A

Anonymous

Gast
Hallo Iarus,

könntest du dir das so vorstellen, oder steht das irgendwo geschrieben. Dann sag mir bitte wo, da es mich sehr interessieren würde. Ich lerne gern alles Neue über Samba hinzu.

Was soll diese smb.conf.a und b, usw. bringen. Die müssten ja um Auswirkungen zu haben vom Server eingelesen und Abgearbeitet werden. Das wird aber nur die smb.conf.

Selbst wenn es funktionieren würde, wäre das Problem von Hasi nicht gelöst, da er ja verschiede Rechte für Gruppen auf ein und dasselbe Share vergeben will.
 
OP
G

Guest

Gast
cybermailer schrieb:
Hallo Hasi,

Das von mir oben angesprochene Szenario tritt dann ein wenn ein User Mitglied in mehreren Gruppen ist.


was passiert wenn ein user in mehreren gruppen ist?
der fall wird mit sicherheit eintreten
 
A

Anonymous

Gast
Hallo Haasi,

sicherlich wird das eintreten. Aber wie gesagt, dann kann es unter Samba hakelig werden. Du musst dann teilweise schon einen sehr grossen Spagat machen, denn mit NTFS ist eine viel feinere Abstufung möglich.

Da kann ich dir jetzt hier aus dem Stand keine Zauberformel nennen. Da müsstest du schon mal die Bücher bemühen, und dich mit der Implementierung von ACL`s beschäftigen. Das würde jetzt hier den Rahmen sprengen.
 
OP
G

Guest

Gast
welche bücher kannst du empfehlen?

ich habe samba3 wanderer zwischen den welten - dort steht viel drin, aber dieses habe ich noch nicht gefunden
 
A

Anonymous

Gast
Für den Anfang sieh dir das mal an. Nach ACL im Inhaltsverzeichnis suchen.
http://samba.sernet.de/skript.pdf

Versuch dich mal mit dem NT-Servermanager (müsste auf der NT-CD sein) anzufreunden. Da geht auch schon einiges. Vielleicht reicht dir das ja schon.
 

larus

Newbie
Hallo,
also, folgender Fall guppe 'a' hat die gidNumber=1002,
gruppe 'b' gidNumber=1003 die gruppe 'alle' gidNumber=1004

die Nutzer aus Gruppe 'a' haben die gidNumber 1002 usw.
diese Nutzer gehören aber auch zur Gruppe 'alle'. Nur die Hauptgruppe wird mit %G substituiert. Das Verzeichnis auf das nun alle zugreifen sollen, kann der Gruppe 'alle' gehören, dadurch haben auf der Unix Seite auch alle Nutzer die Zugriffsrechte. Die Einschränkungen kommen dann durch die smb.conf. (Die Nutzer sollten allerdings keine Shell auf dem Server haben login shell = /bin/false)

die Include Anweisung kopiert eine gruppenspezifische Share in die smb.conf und so 'sieht' jede Gruppe nur das, was sie darf.

Dies funktioniert, wird bei uns mit ca. 20 Gruppen und 400 Nutzern auf mehren Verzeichnissen eingesetzt. Beispielsweise gibt es Verzeichnisse in denen Vorlesungen von Dozenten abgelegt (write ok = yes) werden und von Studenten natürlich nur gelesen werden dürfen (read only = yes)

PS. Laut Doku kann man die INCLUDE Anweisung nicht benutzen, wenn man SWAT benutzt, da dann dieser Parameter wieder entfernt wird. Also musst du einen Editor benutzen.
 
A

Anonymous

Gast
larus schrieb:
Hallo,
Dies funktioniert, wird bei uns mit ca. 20 Gruppen und 400 Nutzern auf mehren Verzeichnissen eingesetzt. Beispielsweise gibt es Verzeichnisse in denen Vorlesungen von Dozenten abgelegt (write ok = yes) werden und von Studenten natürlich nur gelesen werden dürfen (read only = yes)
Das ist ja eine ganz normale Sache. Dazu brauch ich diese Include-Geschichte nicht. Aber hast du Infos zu der Sache. Finde ich dazu irgendwelche Doku's. Oder kannst du mal Auszüge aus so einer smb.conf posten?
 
Oben