Samba / Ordnerrechte

Probleme mit Samba, NFS, FTP und Co.
Antworten
ChoMar
Beiträge: 1184
Registriert: 26.01.2004 19:51:47
Kontaktdaten:

Samba / Ordnerrechte

Beitrag von ChoMar » 17.09.2017 21:26:43

Hallo zusammen
Ich habe nach EWIGKEITEN mein NAS neu aufgesetzt.
Dabei ist mir ein Problem aufgefallen, das ich schon dreimal gelöst habe, ich weiß nur nicht mehr wie.
Der Ordner "share" soll die Rechte share:share haben, und egal welcher Benutzer darin etwas anlegt, die rechte sollen share:share sein.
Das ging irgend wie...
UID und GID sind gesetzt, führt dazu, das er dateien mit benutzer:share anlegt und CHMOD 700... (alternativ 770 wäre auch ok...)
Linux und Windows laufen bei mir zusammen. Ich zocke halt gerne.

ChoMar
Beiträge: 1184
Registriert: 26.01.2004 19:51:47
Kontaktdaten:

Re: Samba / Ordnerrechte

Beitrag von ChoMar » 18.09.2017 10:32:52

Habe jetzt in der smb.conf noch die create directory mask auf 0770 gestellt.
Jetzt werden neue Files in dem Ordner mit rwxrw--- erstellt.... fehlt nur noch ein x...
Linux und Windows laufen bei mir zusammen. Ich zocke halt gerne.

TomL

Re: Samba / Ordnerrechte

Beitrag von TomL » 18.09.2017 10:59:07

Mit der Problemstellung hast Du Dir ein ziemlich kompliziertes Problem zur Lösung vorgenommen. Das ist wirklich nicht trivial und hat haufenweise variable Gestaltungsmöglichkeiten, die das entweder tatsächlich ermöglichen oder auch nur simulieren.

Zunächst musss man unterscheiden, ob es sich um Linux- oder Windows-Clients handelt... es funktioniert bei Linux-Clients nur mit cifs-vfs - das bedeutet, es muss das Paket cifs-utils auf dem Client installiert sein und die Samba-Shares sind ext4-Laufwerke. Ob und wie das mit Windows-Clients und NTFS auf dem Samba-Server machbar ist, weiss ich nicht. Ich habe für Windows alls vergessen und will mich auch nicht mehr damit befassen. Insofern skizziere ich hier in aller Kürze nur einen Lösungsansatz allein unter Linux.

Wenn auf dem Sambaserver die "unix extensions=yes" gesetzt sind (was sie default sind), muss sich auf dem Linux-Client der User "share" entweder anmelden und dann (wenn er anders heisst via "sudo") als User "share" die Laufwerke mounten. Dann würden die Rechte wie gewünscht gesetzt. Da der Samba-Share aber üblicherweise in der fstab von root mit Angabe von User-Credentials (des Samba-Servers) gemoutet wird, gehören die Shares natürlich auch diesem Samba-User und auf dem Server werden wg. "unix extensions=yes" die Rechte auch für diesen User mit dessen Server-UID angelegt, die wiederum abweichend von der Client-UID desselben Users sein kann. Die force-Direktiven in der smb.conf funktionieren hier wg. dem "yes" nicht.

Wenn Du die "unix extensions=no" setzt, könntest Du auf dem Server einen User "share" anlegen und über die force-direktiven die Rechte generell mit "share:share" erzwingen. Das bedeutet aber, dass sie auf den Clients nicht korrekt angezeigt werden können, weil dort der User "share" nicht existiert. Und selbst wenn er auf dem Client existiert, ist nicht sichergestellt, dass der Server-User "share" die gleiche UID hat, wie der Client-User "share".... also stimmt auch hier die Anzeige nicht.... was uns hier die Erkenntnis bringt, dass auch das nicht wirklich funktioniert.

Aber wenn die extensions "no" sind, kann man einfach die tatsächlichen Rechte auf dem Server mit einer simulierten Anzeige auf dem Linux-Client "überlagern". Das passiert mit dem UID- und GID-Parameter in der fstab.

Aber meine unmassgebliche Meinung dazu.... ich halte die beabsichtigte Vorgehensweise für keine gute Lösung.... es ist nur eine ziemlich unbefriedigende Krücke. Ich würde mich von dem Gedanken "share:share" verabschieden und die Rechte für den User setzen, der das Laufwerk gemountet hat. Mit "unix extensions=no" kann man dazu die force-Direktiven nutzen, um z.B. eine Gruppe zu erzwingen. Eine synchrone Darstellung auf den Clients ist nicht möglich. Es sein denn, man richtet auf allen Clients einen User "share" ein und erzwingt eine simulierte Darstellung über die UID-GID-Parms in der fstab... aber wie gesagt, mit den tatsächlichen Rechten hat das auf dem Server wenig zu tun.... und wenn, dann nur zufällig. Soweit mir bekannt ist, gibt es für unsere Hausgebrauchs-Samba-Server keine UID-Synchronisation für alle Clients und Server im Netzwerk..... und wenns das gibt, dann ist da wohl mehr Netzwerk-KnowHow notwendig, als ich das habe. Aber ich halte das auch für solche Kleinlösungungen für unnötig.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Samba / Ordnerrechte

Beitrag von ThorstenS » 18.09.2017 13:31:11

Ich würde zumindest einen validen Benutzer erwarten wollen.

Leg den Ordner so an:

Code: Alles auswählen

mkdir /home/samba/Temp
chown sync:sync /home/samba/Temp
chmod 2775/home/samba/Temp
Nimm das in die smb.conf auf

Code: Alles auswählen

[temp]
   comment = Ablage fuer temporäre Dateien
   path = /home/samba/Temp
   invalid users = root
   writeable = yes
   guest ok = yes
   sync always = yes
   force group = sync
   create mask = 0660
   force create mode = 660
   directory mask = 0770
   force directory mode = 770
   strict allocate = yes

ChoMar
Beiträge: 1184
Registriert: 26.01.2004 19:51:47
Kontaktdaten:

Re: Samba / Ordnerrechte

Beitrag von ChoMar » 18.09.2017 14:41:40

jup, der valide Benutzer soll gegeben sein und muss in der Gruppe share sein (oder bei dir Sync)
Ansonsten, sieht gut aus das Beispiel, heute Abend mal schauen ob ich das so zum laufen bekomme wie es sein sollte.
Linux und Windows laufen bei mir zusammen. Ich zocke halt gerne.

Antworten