Samba Rechte Problem

E

ectoplasma

Grünschnabel
Hallo zusammen, ich sitze nun schon eine Weile an dem Problem. Eltliche Seiten habe ich durch und trotzdem funktioniert es nicht mehr. Bisher lief die Konfiguration, jedoch musste ich meine OpenSuse 10.1 neu installieren. Seit dem klappts nicht mehr. Hatte alle betreffenden Configfiles kopiert. Jedoch zur Problembeschreibung:

Ich habe ein Verzeichnis auf das mehrere Windows User über Samba zugreifen. Ich habe einen User (sambauser) der soll in dem Verzeichnis nur lesen und ausführen. Diesen Username benutzen alle im LAN, die nur auf den share zugreifen sollen, an ihm aber Nichts verändern dürfen. Dann habe ich 3 User die auch Files erstellen, verändern, verschieben oder löschen dürfen. Diese 3 user habe ich in eine unixgroup (fileadmins) zusammengepackt. Der Rest der Welt soll keinen Zugriff haben. Daraus folgt

chmod -R 570 /Verzeichnis
chown -R sambauser /Verzeichnis
chgrp -R fileadmins /Verzeichnis

Soweit die Unix Dateirechte. Mir ist bekannt das es dadurch zu Problemen kommen kann, wenn ich eine die Besitzrechte verändern möchte. Jedoch funktioniert dann auf Unixebene für die Gruppe (lesen, ausführen, ändern, löschen, verschieben).

Nun hab ich so versucht Samba damit zu verheiraten:

[global]
log file =/mnt/cryptdata/private/sambalog/samba.log.%m
os level = 200
workgroup = SPAWN
serverstring = Warlord
local master = NO
wins server = 192.168.0.3
veto files = /*.eml/*.nws/riched20.dll/*.{*}/
encrypt passwords = Yes
map to guest = Bad User
time server = Yes
unix extensions = Yes
security = user
prefered master = No
domain master = No
printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
include = /etc/samba/dhcp.conf
logon path = \%Lprofiles.msprofile
logon home = \%L%U.9xprofile
logon drive = P:

[Daten]
path = /mnt/cryptdata/pub
writeable = yes
#create mask = 770
#directory mask = 0770


Doch irgendwie funktioniert das nicht. Ich kann zwar Dateien erstellen. Die kann ich auch dann verändern, verschieben löschen usw. Jedoch bei allen anderen Dateien die sambauser gehören funktioniert das nicht, obwohl ich Mitglied der Gruppe bin. Irgendwie versteh ich das nicht. War schonmal soweit, dass ich Verzeichnisse komplett löschen konnte, jedoch deren Inhalt nicht. Hab schon so viel ausprobiert das ich die verschiedenen Konfigs schon fast nicht mehr auseinander halten kann. Habe schon mit den Parametern

force user
force group
write list
create mask
directory mask

rumgespielt. Ich versteh es einfach nicht. Dabei ging es doch einmal. Ich hoffe hier hat jemand einen Tip für mich...

Viele Grüsse
Ecto
 
Hi,
kein Problem:
zu allererst legst du eine Gruppe "fileaccess" an. Dann gibst du der Gruppe fileaccess Zugriff auf die Daten(wichtig: lesend und schreibend).

chown root:fileaccess
chmod 0770 folder

In diese Gruppe packst du alle deine User. Alle User sollten natürlich so angelegt sein, dass sie keine Login-Shell haben und sich am System nicht anmelden können.

Deine smb.conf sollte nun so aussehen:

[daten]
comment = Daten
path = /data/trallala
valid users = alle User die Zugriff auf dieses Share haben
write list = User die auch schreiben dürfen
browseable = yes
writeable = no
create mask = 0770
directory mask = 0770

Jetzt sollte deine Netzwerkfreigabe für alle gewünschten User lesbar und schreibbar sein. Wenn du keine Lust hast die User einzeln aufzuführen kannst du sie auch in Gruppen verpacken und mit

valid users = @readgruppe, @writegruppe
write list = @writegruppe

Samba implementiert keine Unix-Zugriffsrechte, die User die Zugriff haben sollen müssen auch im Dateisystem die entsprechenden Rechte haben.

Hoffe dir geholfen zu haben.

so long....
 
Hi,
kein Problem:
zu allererst legst du eine Gruppe "fileaccess" an. Dann gibst du der Gruppe fileaccess Zugriff auf die Daten(wichtig: lesend und schreibend).

chown root:fileaccess
chmod 0770 folder

In diese Gruppe packst du alle deine User. Alle User sollten natürlich so angelegt sein, dass sie keine Login-Shell haben und sich am System nicht anmelden können.

Deine smb.conf sollte nun so aussehen:

[daten]
comment = Daten
path = /data/trallala
valid users = alle User die Zugriff auf dieses Share haben
write list = User die auch schreiben dürfen
browseable = yes
writeable = no
create mask = 0770
directory mask = 0770

Jetzt sollte deine Netzwerkfreigabe für alle gewünschten User lesbar und schreibbar sein. Wenn du keine Lust hast die User einzeln aufzuführen kannst du sie auch in Gruppen verpacken und mit

valid users = @readgruppe, @writegruppe
write list = @writegruppe

Samba implementiert keine Unix-Zugriffsrechte, die User die Zugriff haben sollen müssen auch im Dateisystem die entsprechenden Rechte haben.

Hoffe dir geholfen zu haben.

so long....


Vielen Dank für die Antwort. Ich habe heute N8 mit dem parameter

admin users = meine 3 User mit schreibzugriff

es geschafft.

Jedoch finde ich deine Variante auch interessant. Mein Ansatz war eher gewesen den Zugriff auf das Dateisystem durch die Unixrechte zu reglementieren und Samba eher offen zu gestalten. Du verfolgst da den Weg das Unixdateisystem offen zu gestalten und Samba restriktiv. Warum muss ich auf Unix Ebene Schreiben für den User erlauben?
Warum funktioniert das nicht wenn der User Mitglied der Gruppe ist? Mit dem Parameter admin users geht das nun auch mit Unixrechten 570. Finde ich ein wenig verwirrend.


Danke für deine Hilfe
Ecto
 

Ähnliche Themen

Samba 4.9.5-Debian - Kennwort von unix übernehmen

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Samba Dateien und Ordner verschieben

Samba 4.5.12-Debian Rechtevergabe

smb.conf

Zurück
Oben