Samba - Ordnerlöschen verhindern
Moin zusammen,
hier ein weiterer Post aus der Reihe "Samba und warum funktioniert das in Windows nicht!"
Infos:
Ich nutze Samba 4.7.4 auf einem Debian Stretch. Für die Shares nutze ich Posix ACLs und nicht die Windows ACLs. Ich möchte auch NICHT zu den Windows ACLs wechseln.
TL;DR:
Windows denkt als würde es Ordner von einem Samba Share löschen, und löscht alle Dateien rekursiv in einem Ordner, obwohl der Nutzer im Übergeordneten Ordner eigentlich keine Rechte hat, diesen Ordner zu löschen. Dies führt zu einem leeren Ordner. Eigentlich sollte Windows eine Fehlermeldung ausgeben, dass es nicht berechtigt ist, den Ordner zu löschen.
Folgende Problem:
Ich habe einen Share erstellt für alle meine Benutzer und Gruppen. Dieser liegt unter /srv/Share und ist im Besitz von Root, sprich keiner der Benutzer darf hier einen Ordner anlegen, haben aber die r-x Rechte um den Ordner zu betreten.
Jetzt erstelle ich hier einen Ordner für die Gruppe "Mitarbeiter" mit dem Namen "employees". Ich mache Root als Userowner und die Gruppe "Mitarbeiter" als Groupowner. Dann setze ich die Permissions auf 770 und alle Mitarbeiter können ihre Dateien darin teilen, schreiben oder löschen etc. (Dies ist so gewollt).
Letzteres, das Löschen, ist jetzt das Problem:
Wenn man sich mit Windows auf den Share verbindet so zeigt er einem den Ordner "employees" an. Wenn ich jetzt diesen Ordner von Windows aus versuche zu löschen, dann kommt erst die Abfrage, ob ich diesen Ordner unwiderruflich löschen will und dann ist der weg. Naja so halb:
Beim Löschen, löscht Windows alle Dateien in dem Ordner "Employees" und zeigt dann auch den Ordner "Employees" auch nicht mehr an. Öffnet man jetzt den Explorer neu, so existiert der Ordner wieder, aber alle Dateien darin sind gelöscht.
Betrachtet man die Linux Permissions, so hat ein Nutzer der Gruppe "Mitarbeiter" keine Permissions um im Ordner /srv/Share/ etwas zu schreiben, sprich er darf auch keine Ordner löschen. Nutze ich in Linux einen unberechtigten Nutzer so verhindert Linux auch erfolgreich das Löschen des Ordners "Employees", so wie es sein soll.
Jetzt ist die Frage, warum Samba Windows scheinbar nicht mitteilt, dass der User gar keine Rechte hat den Ordner zu löschen, sodass Windows das erklärte Verhalten aufweist.
Habe ich hier einen Konfigurationsfehler bzw gibt es eine Konfiguration dafür, um das gewünschte Verhalten zu erreichen?
Workaround:
Wenn ich in dem Ordner "Share" einen Ordner ".protect" anlegen und die Rechte root:root 777 zuweise, so kann ich den Übergeordneten Ordner "Employees" nicht mehr Löschen von Windows und ich erhalte auch eine Ordnungsgemäße Fehlermeldung. Ehrlich gesagt, finde ich dies aber ziemlich ugly, als man das einsetzen will :D.
Vielleicht hat hiermit ja bereits einer Erfahrung gemacht?
Über jede Hilfe bin ich sehr Dankbar.
hier ein weiterer Post aus der Reihe "Samba und warum funktioniert das in Windows nicht!"
Infos:
Ich nutze Samba 4.7.4 auf einem Debian Stretch. Für die Shares nutze ich Posix ACLs und nicht die Windows ACLs. Ich möchte auch NICHT zu den Windows ACLs wechseln.
TL;DR:
Windows denkt als würde es Ordner von einem Samba Share löschen, und löscht alle Dateien rekursiv in einem Ordner, obwohl der Nutzer im Übergeordneten Ordner eigentlich keine Rechte hat, diesen Ordner zu löschen. Dies führt zu einem leeren Ordner. Eigentlich sollte Windows eine Fehlermeldung ausgeben, dass es nicht berechtigt ist, den Ordner zu löschen.
Folgende Problem:
Ich habe einen Share erstellt für alle meine Benutzer und Gruppen. Dieser liegt unter /srv/Share und ist im Besitz von Root, sprich keiner der Benutzer darf hier einen Ordner anlegen, haben aber die r-x Rechte um den Ordner zu betreten.
Jetzt erstelle ich hier einen Ordner für die Gruppe "Mitarbeiter" mit dem Namen "employees". Ich mache Root als Userowner und die Gruppe "Mitarbeiter" als Groupowner. Dann setze ich die Permissions auf 770 und alle Mitarbeiter können ihre Dateien darin teilen, schreiben oder löschen etc. (Dies ist so gewollt).
Letzteres, das Löschen, ist jetzt das Problem:
Wenn man sich mit Windows auf den Share verbindet so zeigt er einem den Ordner "employees" an. Wenn ich jetzt diesen Ordner von Windows aus versuche zu löschen, dann kommt erst die Abfrage, ob ich diesen Ordner unwiderruflich löschen will und dann ist der weg. Naja so halb:
Beim Löschen, löscht Windows alle Dateien in dem Ordner "Employees" und zeigt dann auch den Ordner "Employees" auch nicht mehr an. Öffnet man jetzt den Explorer neu, so existiert der Ordner wieder, aber alle Dateien darin sind gelöscht.
Betrachtet man die Linux Permissions, so hat ein Nutzer der Gruppe "Mitarbeiter" keine Permissions um im Ordner /srv/Share/ etwas zu schreiben, sprich er darf auch keine Ordner löschen. Nutze ich in Linux einen unberechtigten Nutzer so verhindert Linux auch erfolgreich das Löschen des Ordners "Employees", so wie es sein soll.
Jetzt ist die Frage, warum Samba Windows scheinbar nicht mitteilt, dass der User gar keine Rechte hat den Ordner zu löschen, sodass Windows das erklärte Verhalten aufweist.
Habe ich hier einen Konfigurationsfehler bzw gibt es eine Konfiguration dafür, um das gewünschte Verhalten zu erreichen?
Workaround:
Wenn ich in dem Ordner "Share" einen Ordner ".protect" anlegen und die Rechte root:root 777 zuweise, so kann ich den Übergeordneten Ordner "Employees" nicht mehr Löschen von Windows und ich erhalte auch eine Ordnungsgemäße Fehlermeldung. Ehrlich gesagt, finde ich dies aber ziemlich ugly, als man das einsetzen will :D.
Vielleicht hat hiermit ja bereits einer Erfahrung gemacht?
Über jede Hilfe bin ich sehr Dankbar.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 367435
Url: https://administrator.de/contentid/367435
Ausgedruckt am: 17.12.2024 um 08:12 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
Eine Punkt Datei ist versteckt, die 777 Permissions ist totaler Bloedsinn.
777 bedeutet der Besitzer, die Gruppe und alle anderen duerfen alles.
Die Frage stellt sich hier wie die Berechtigung des uebergeordneten Verzeichnis aussehen ?
Kannst Du auch gar nicht da Linux keine Ahnung von Windows ACL's hat !
Windows denkt nicht...
Mich wuerde jetzt mal folgendes zu Deinem Problem interessieren:
Handelt es sich um den Samba als einzigsten Fileserver und handelt es sich hier nur um Windowsclients ?
Das geht leider nicht aus Deinem Post hervor.
Beschreibe doch mal die genaue Umgebung dann koennen wir auch besser darauf eingehen.
Desweiteren waere interessant wie Du denn die Linux ACL's gesetzt hast ? Hast Du die den ueberhaupt installiert ?
Gruss
Workaround:
Wenn ich in dem Ordner "Share" einen Ordner ".protect" anlegen und die Rechte root:root 777 zuweise, so kann ich den Übergeordneten Ordner
"Employees" nicht mehr Löschen von Windows und ich erhalte auch eine Ordnungsgemäße Fehlermeldung. Ehrlich gesagt, finde ich dies aber ?
ziemlich ugly, als man das einsetzen will :D.
Wenn ich in dem Ordner "Share" einen Ordner ".protect" anlegen und die Rechte root:root 777 zuweise, so kann ich den Übergeordneten Ordner
"Employees" nicht mehr Löschen von Windows und ich erhalte auch eine Ordnungsgemäße Fehlermeldung. Ehrlich gesagt, finde ich dies aber ?
ziemlich ugly, als man das einsetzen will :D.
Eine Punkt Datei ist versteckt, die 777 Permissions ist totaler Bloedsinn.
777 bedeutet der Besitzer, die Gruppe und alle anderen duerfen alles.
Die Frage stellt sich hier wie die Berechtigung des uebergeordneten Verzeichnis aussehen ?
Ich nutze Samba 4.7.4 auf einem Debian Stretch. Für die Shares nutze ich Posix ACLs und nicht die Windows ACLs. Ich möchte auch NICHT zu den Windows ACLs wechseln.
Kannst Du auch gar nicht da Linux keine Ahnung von Windows ACL's hat !
Windows denkt als würde es Ordner von einem Samba Share löschen, und löscht alle Dateien rekursiv in einem Ordner, obwohl der Nutzer im
Übergeordneten Ordner eigentlich keine Rechte hat, diesen Ordner zu löschen. Dies führt zu einem leeren Ordner. Eigentlich sollte Windows eine Fehlermeldung ausgeben, dass es nicht berechtigt ist, den Ordner zu löschen.
Übergeordneten Ordner eigentlich keine Rechte hat, diesen Ordner zu löschen. Dies führt zu einem leeren Ordner. Eigentlich sollte Windows eine Fehlermeldung ausgeben, dass es nicht berechtigt ist, den Ordner zu löschen.
Windows denkt nicht...
Mich wuerde jetzt mal folgendes zu Deinem Problem interessieren:
Handelt es sich um den Samba als einzigsten Fileserver und handelt es sich hier nur um Windowsclients ?
Das geht leider nicht aus Deinem Post hervor.
Beschreibe doch mal die genaue Umgebung dann koennen wir auch besser darauf eingehen.
Desweiteren waere interessant wie Du denn die Linux ACL's gesetzt hast ? Hast Du die den ueberhaupt installiert ?
Gruss