ubuntuusers.de

Samba Freigabe - Berechtigungen

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

bla2blub

Anmeldungsdatum:
27. Dezember 2007

Beiträge: 4

Hallo!

Ich habe eine Samba Freigabe erstellt. Darin gibt es mehrere Ordner.
Ein Ordner temp hat die Berechtigung 777 - dort soll jeder Schreib/Leserechte haben.
Die anderen Ordner haben die Berechtigung 755 und wurden mit meinem Benutzer erstellt. D.h. dort habe nur ich Schreibrechte.

Folgendes Problem: Kopiert jetzt ein nicht angemeldeter Benutzer einen Ordner in temp, hat der neue Ordner die Berechtigungen 755 (erstellt von nobody) und ich habe mit meinem Benutzer keinen Zugriff auf den Ordner.
Allerdings möchte ich diesen neuen Ordner in einen der Ordner verschieben, wo nichtangemeldete Benutzer nur Leserechte haben.
Eine möglichkeit wäre die Option zu aktivieren, dass immer die Rechte des übergeordneten Ordners geerbt werden.

Allerdings tritt dann der Fall auf, dass ich einen Ordner mit den Rechten 777 in einen Ordner mit 755 verschieben, dieser noch immer die Rechte 777 hat - was natürlich nicht sein soll - und ich müsste die Berechtigung per Hand ändern.

Gibt's dafür eine praktische Lösung?

Also nochmal kurz: Ein Ordner wo jeder Schreibrechte hat und ich möchte mit einem bestimmten Benutzer die möglichkeit haben, die dort abgelegten Daten auf div. Ordner aufzuteilen, wo man dann (als nicht angemeldeter Benutzer) nur noch Leserechte bestitzt.

Vielen Dank für jede Hilfe ☺

Max-Ulrich_Farber

Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

Das ist noch ein bisschen unklar: Von wo aus willst Du die Ordner verschieben, vom Server aus oder vom Client aus?

Wenn Du eine Samba-Freigabe mittels smbfs auf dem Client mountest, werden dort die Besitzer-Rechte über die Angaben uid=...,gid=...,umask=... simuliert. Diese Angaben gelten aber nur für den Zugriff vom Client aus und werden nicht echt auf den Server übertragen. Dort gelten die "echten" Zugriffsrechte, die anders sein können. Folglich ist es für die Rechte nicht egal, ob Du eine Datei direkt auf dem Server verschiebst oder aber über Samba vom Client aus.

Bei cifs ist es anscheinend etwas komplizierter als bei smbfs. Wenn der Server die "Cifs-UNIX-extensions" versteht (was das genau ist, weiß ich leider nicht), dann werden diese zur Rechte-Verwaltung verwendet. Versteht er sie aber nicht, dann wird genau wie bei smbfs auf dem Client eine Rechte-Verwaltung simuliert.

und ich müsste die Berechtigung per Hand ändern.

Das kannst Du bei smbfs grundsätzlich nur auf dem Server machen. Auf dem Client werden die Rechte beim Mounten definitiv festgelegt. Der Befehl chown (und die Änderung der Zugriffsrechte via GUI) funktioniert für Samba-shares nicht. Ich nehme mal an, dass dies bei cifs genau so ist (zumindest, wenn die Rechte wie bei smbfs über uid=... usw. simuliert sind). Ob es über diese "Cifs-UNIX-extensions" eine andere Möglichkeit gibt, weiß ich leider nicht.

Gruß - Max-Ulrich

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

Also nochmal kurz: Ein Ordner wo jeder Schreibrechte hat und ich möchte mit einem bestimmten Benutzer die möglichkeit haben, die dort abgelegten Daten auf div. Ordner aufzuteilen, wo man dann (als nicht angemeldeter Benutzer) nur noch Leserechte bestitzt.

Muesste gehen, wenn Du zwei voneinander unabhaengige Freigaben erstellst: die eine mit Vollzugriff fuer alle, die andere mit Schreibrecht nur fuer den "bestimmten" Benutzer (aber mit Leserecht fuer andere). Soweit ok.

Folgendes Problem: Kopiert jetzt ein nicht angemeldeter Benutzer einen Ordner in temp, hat der neue Ordner die Berechtigungen 755 (erstellt von nobody) und ich habe mit meinem Benutzer keinen Zugriff auf den Ordner.

Das sollte sich mit create mode = ..., directory mode = ..., forceuser = ... und forcegroup = ... regeln lassen (Samba_Server). Am einfachsten, Du postest mal Deine beiden Freigaben aus der /etc/samba/smb.conf.

Max-Ulrich_Farber

Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

Bei smbfs nimmt meines Wissens auf dem Client eine Datei oder Ordner beim Kopieren in einen anderen Ordner mit anderen Rechten seine beim Erstellen erzeugten, simulierten Rechte mit. Erst beim Neustart oder erneuten Mounten der Freigaben werden die Rechte angepasst, d.h. erhält die Datei oder der Ordner die Rechte des übergeordneten Ordners.

Bei CIFS müsste das ähnlich sein, wenn die Rechte mittels uid=... usw. simuliert sind. Mit den cifs-UNIX-extensions sollte es dagegen anders gehen - wenn es überhaupt geht ❓

Gruß - Max-Ulrich

bla2blub

(Themenstarter)

Anmeldungsdatum:
27. Dezember 2007

Beiträge: 4

Danke erstmal für die Antworten.

Also, ich will die Ordner von einem Client aus verschieben können. (Der zur Freigabe mit einem speziellen Verwaltungsuser verbunden ist)
Normalerweise braucht man gar keinen bestimmten User um auf die Freigabe zuzugreifen.

Das mit den zwei Freigaben horcht sich sinnvoll an. Im Moment habe ich nur eine und dachte, man kann das irgendwie mit den Zugriffsrechten der Ordner lösen, aber da gabs eben die beschriebenen Probleme.

Hier meine Freigabe:
[data]
path = /media/raid5/data
comment = fileserver
available = yes
browseable = yes
writeable = yes
guest ok = yes

Und die Ordner Struktur sieht so aus:
tmp 777 (jeder darf was reinkopien)
test1 755 (Verwaltungsuser darf schreiben, nichtangemeldete benutzer nur lesen)
test2 755 (Verwaltungsuser darf schreiben, nichtangemeldete benutzer nur lesen)

Erstellt wurden diese Ordner von meinem Verwaltungsuser (direkt am Server), wenn jetzt ein nichtangmeldeter User allerdings einen neuen Ordner in tmp erstellt, hat der Ordner auch die Rechte 755 und kann somit von meinem Verwaltungsbenutzer nicht verschoben werden.

Tu mir bissl schwer das ganze verständlich zu erklären, sorry =)
Viell. verstehts ja trotzdem jemand - danke!

bla2blub

(Themenstarter)

Anmeldungsdatum:
27. Dezember 2007

Beiträge: 4

Ok... also hab jetzt zwei Samba Freigaben.
Eine heißt temp (jeder hat Vollzugriff) und die andere data (nur der angemeldete Benutzer hat Vollzugriff)

Funktioniert alles soweit - aber:

Wenn ich jetzt von der temp Freigabe einen Ordner auf data verschiebe (unter Windows), wird der Ordner nicht wirklich verschoben sonder kopiert und dann gelöscht.
Das dauert natürlich sehr lange - vorallem bei großen Files.

Kann man das irgendwie umgehen? (Damits das Verschieben so klappt wie innerhalb einer Freigabe)

Max-Ulrich_Farber

Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

Kann man das irgendwie umgehen? (Damits das Verschieben so klappt wie innerhalb einer Freigabe)

Das glaube ich kaum.

Beim Verschieben innerhalb einer Partition werden die Daten ja nicht echt verschoben, sondern nur die Verzeichnis-Einträge geändert. Wenn Du zwei getrennte Freigaben eingerichtet hast, weiß smb auf dem Client nichts davon, dass sich diese auf der gleichen Partition befinden. Deshalb wird dann echt kopiert und anschließend gelöscht.

Wenn Du smbfs verwendest oder wenn die Freigaben auf einer FAT- oder NTFS-Partition liegen, gibt es wohl keinen anderen Weg, dann musst Du die Verzögerung in Kauf nehmen.

Wenn die Dateien auf dem Server in einer ext2/3-Partition liegen, kannst Du versuchen, ob es mittels cifs geht, dass die einzelnen Ordner innerhalb einer einzigen Freigabe verschiedene Zugriffsrechte haben (mit smbfs geht das nicht).Wenn ich das mit den cifs-UNIX-extensions richtig verstanden habe, müsste es eigentlich gehen. Dann müsstest Du es auch mit einer einzigen Freigabe machen können, und das Verschieben ginge erheblich schneller.

Bei cifs gibt es allerdings noch das immer noch nicht zufriedenstellend gelöste Shutdown-Problem.

Gruß - Max-Ulrich

Antworten |