PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Samba Rechte Problem (speziell)



pireli
18.08.08, 20:31
Hallo an alle,

zurzeit beschäftig ich mit Samba und muss sagen das bis jetzt alles gut klappen tut :)

Leider habe ich ein Problem und finde keine Lösung dafür. Ich glaube schon mal was darüber gelesen zu haben das es eine Option/Befehl gibt womit diese Problem man(n) ;) lösen könnte...

Ich habe ein Samba Share:

Workgroup (drwxr-x---) Owner: root Group: smb_workgroup

und Unterordner wie:

einkauf (drwxrws---) Owner: root Group smb_w_einkauf
verkauf (drwxrws---) Owner: root Group smb_w_verkauf

Nur der Benutzer der Mitglied der Gruppe im Unterordner ist kann auch rein bzw. lesen schreiben. In Workgroup kann jeder User rein der Mitglied der Gruppe smb_workgroup usw. ist.

Die Schreibrechte im Oberordner Workgroup habe ich extra entzogen damit kein User die Ordner umbenennen kann oder löschen. Das Problem ist der Ordner z.B. einkauf oder verkauf wird nicht gelöscht aber der Inhalt wird gelöscht.

Gibt es in Samba eine Option das er erst schauen tut wenn der Ornder nicht gelöscht werden darf auch nicht der Inhalt im Ornder? Oder sind schlichtweg meine Berechtigungen falsch?! :ugly:

Vielen Dank & Schöner Abend
Pireli

trequ
19.08.08, 03:02
Suchst du das ?

von http://de.wikipedia.org/wiki/Sticky_Bit

bei Verzeichnissen
Das Sticky-Bit ermöglicht das Anlegen von gemeinsam genutzten Verzeichnissen.

Hat ein Verzeichnis beispielsweise für alle Benutzer alle Dateirechte gesetzt (777 bzw. rwxrwxrwx), dann kann jeder Benutzer in diesem Verzeichnis Dateien (und Unterverzeichnisse) anlegen, aber auch jede Datei darin löschen. Durch Setzen des Sticky-Bits wird der Zugriff auf die Dateien in diesem Verzeichnis eingeschränkt, so dass nur noch der Eigentümer einer Datei (oder der Eigentümer des Verzeichnisses) diese Datei löschen oder umbenennen darf. Die Rechte zum Lesen und Schreiben der Dateien bleiben davon unberührt. Verwendung findet das Sticky-Bit zum Beispiel bei /tmp.

pireli
19.08.08, 17:43
Danke für deine Antwort.
Ja das kommt der Sache schon näher. Das Problem ist wenn jemand anderes was anlegt und der Sticky Bit ist gesetzt kann ich das nicht löschen ok gut! Aber mein eigener Inhalt im Ordner was ja auch nicht sein sollte wird dann gelöscht.

Mir geht es nur darum das kein User den Inhalt des Ordner einkauf, verkauf usw. löschen kann (Außer er befindet sich im Ordner einkauf dann ja). Das Sticky Bit verhindert das nur teilweise bzw. es werden nur die Dateien/Ordner des Löschers rausgelöscht und der Inhalt der anderen User bleibt was auch nicht so der Sinn der Sache ist. Ich möchte das auch die Dateinen des Löschers nicht gelöscht werden (hört sich irgendwie komisch an ;))

Danke
Pireli

pireli
19.08.08, 19:33
Ich glaube in Samba kann man das in der smb.conf einstellen das ist irgend ein Befehl. Das er erst schauen soll z.B. prüfen dann löschen oder sowas....

Im Workgroup Ordner hat keine smb_workgroup user schreibrechte. Deshalb finde ich es auch komisch das er den Inhalt vom Unterordner löscht bzw. ok da hat der User wieder schreibrechte hm....

Edit: Keiner eine Idee?

pireli
22.08.08, 21:35
Schade keiner eine Idee/Lösung.

Ich habe schon mit ACL versucht versucht klappt auch, aber das Löschproblem ist damit immer noch nicht behoben.

Schön wäre es wenn es irgend etwas gibt und das Problem zu beheben. Wenn ich ein Denkfehler habe und es mir jemand sagt wäre auch schön...:D :)

trequ
23.08.08, 03:13
Versteh ich das jetzt richtig?
Du möchtest etwas an einen Ort speichern und alles was dort einmal gespeichert war, soll kein Anwender wieder löschen sondern nur noch lesen können?

Also ich bin nicht wirklich fitt mit ACL, aber so weit ich weiß gibts auch dort keine Möglichkeit explizit das Löschen zu verbieten.

Was ich mir vorstellen könnte, wären 2 Freigaben (1x zum speichern und 1x zum lesen) die sich dann gegenseitig per Perl Script das alle ? Minuten läuft wieder abgleichen.
Bedeutet allerdings doppelte Datenhaltung.

pireli
23.08.08, 10:09
Versteh ich das jetzt richtig?
Du möchtest etwas an einen Ort speichern und alles was dort einmal gespeichert war, soll kein Anwender wieder löschen sondern nur noch lesen können?

Also ich bin nicht wirklich fitt mit ACL, aber so weit ich weiß gibts auch dort keine Möglichkeit explizit das Löschen zu verbieten.

Was ich mir vorstellen könnte, wären 2 Freigaben (1x zum speichern und 1x zum lesen) die sich dann gegenseitig per Perl Script das alle ? Minuten läuft wieder abgleichen.
Bedeutet allerdings doppelte Datenhaltung.

Danke für deine Antwort :)

Ich fang mal von vorne an.

Ich hatte am Anfang für jeden Ornder einen Share. Das blöde ist im Arbeitsplatz waren dann bei jedem 10 Netzlaufwerke da.

Jetzt dachte ich mir ich mache nur ein Share "Workgroup" und pack Arbeitsbereiche wie Einkauf, Verkauf, Techink in den Ornder Workgroup. Das brachte/bringt so einige Probleme mit sich.

Jeder Ordner in Workgroup gehört einer Gruppe an z.B. Einkauf = smb_einkauf.
Nur der Nutzer der auch Mitglied der Gruppe ist darf rein und schreiben lesen ausführen usw. wenn ich nur einer Gruppe leserechte geben will kann ich die auch per ACL vergeben das ist kein Problem.

Ich möchte das im Share Workgroup keiner Dateien/Ordner anlegen darf und löschen nur dann wenn ich im Unterordner bin z.B. Einkauf.

Das blöde ist nur wenn ich jetzt den Ordner Einkauf aus Workgroup löschen will sagt er mich ich darf es nicht was auch stimmt weil ich ja keine schreibrechte in workgroup habe sonder nur im Ordner Einkauf selber ABER er löscht mir dann den Inhalt aus Einkauf komplett weg. Und das will ich auf keinen Fall der Inahlt im Ordner soll ja da bleiben.

Ich versteht auch ein bisschen warum er mir den Inhalt rauslöscht weil ich ja gleichzeitig Guppenmitlied von Einkauf bin und habe Schreibrechte im Ordner Einkauf. Aber im Ordner drüber habe ich es nicht.

Ich dachte das Thema "Rechte" ist so einfach :)

Danke
Pireli

trequ
23.08.08, 21:49
Hallo.

Ich würde mal sagen, dann ist irgend was mit den Posix Rechten falsch.

Ich würde das so aufziehen:


drwsr-x--t root smb_all_user workgroup
drwxrws--t root smb_einkauf einkauf
-rwxrwx--- bauer smb_einkauf datei1
-rwxrwx--- huber smb_einkauf datei2
drwxrws--t root smb_technik
-rwxrwx--- maier smb_technik datei3
-rwxrwx--- mueller smb_technik datei4


Durch die Sticky Bits kann nur der Owner löschen und das ist ja root.
Alle anderen müssten meiner Meinung nach nicht löschen können...

Ich kanns aber leider grad nicht testen, da meine Platte mit dem Linux drauf verreckt ist -.-

Thorashh
24.08.08, 00:51
Moin pireli

...
Ich möchte das im Share Workgroup keiner Dateien/Ordner anlegen darf und löschen nur dann wenn ich im Unterordner bin z.B. Einkauf.

Das blöde ist nur wenn ich jetzt den Ordner Einkauf aus Workgroup löschen will sagt er mich ich darf es nicht was auch stimmt weil ich ja keine schreibrechte in workgroup habe sonder nur im Ordner Einkauf selber ABER er löscht mir dann den Inhalt aus Einkauf komplett weg. Und das will ich auf keinen Fall der Inahlt im Ordner soll ja da bleiben.
... Ganz ehrlich, ich versteh kein Wort von dem was Du da schreibst.
Du willst den Ordner Einkauf löschen können, aber der Inhalt soll erhalten bleiben? :confused:

Wenn Du den Order Einkauf löschen möchtest, brauchst Du:
1. Schreibrecht für alle Dateien und Verzeichnisse, die sich in Einkauf befinden
2. Schreibrechte für den Workgroup Ordner

Das was Du "vermutlich" möchtest geht mit den Unix-Zugriffsrechten nicht. Du könntest das z.B. mit Posix Capabilities lösen.
Da steht der Aufwand aber in keinem vernünftigen Verhältnis zum Nutzen.

pucki
24.08.08, 12:20
Danke für deine Antwort :)

Das blöde ist nur wenn ich jetzt den Ordner Einkauf aus Workgroup löschen will sagt er mich ich darf es nicht was auch stimmt weil ich ja keine schreibrechte in workgroup habe sonder nur im Ordner Einkauf selber ABER er löscht mir dann den Inhalt aus Einkauf komplett weg. Und das will ich auf keinen Fall der Inahlt im Ordner soll ja da bleiben.

Ich versteht auch ein bisschen warum er mir den Inhalt rauslöscht weil ich ja gleichzeitig Guppenmitlied von Einkauf bin und habe Schreibrechte im Ordner Einkauf. Aber im Ordner drüber habe ich es nicht.

Ich dachte das Thema "Rechte" ist so einfach :)

Danke
Pireli

kurz und bündig, du möchtes das rekursive löschen von Dateien und Verzeichnissen unterbinden, wenn du in einem übergeordneten Verzeichnis bist.
Das Problem dürfte hier einfach die Reihenfolge sein, in der das ganze abgearbeitet wird.

probiere es einfach mal selbst um mit dem Ablauf vertraut zuwerden. dummyverzeichnisstruktur mit dateien anlegen und los gehts. (unter linux)
rm -r dummy
du wirst sehen, dass zuerst feststellt wird, dass darunter etwas existiert und du wirst gefragt ob da weiter gemacht werden soll. Zuerst wird also die Ebene darunter gelöscht. Verhindern kannst du das wohl nur, wenn du verhinderst, dass man eine Ebene nach unten gehen darf, aber dann darf man auch wieder nicht lesen / schreiben. Das eigentliche Verzeichnis, bei dem du das Löschen verhinderst, wird zuletzt abgefragt. Das geht dann ja zurecht nicht mehr.

Ob du das rekursive Löschen aus einer Verzeichnisebene heraus in der direkt nichts gelöscht werden darf unterbinden kannst, weiss ich nicht. Aber vielleicht hilft dir diese Info auf deinem Weg weiter ;-).

Grüße

Reinhard

pireli
27.08.08, 17:15
Moin pireli
Ganz ehrlich, ich versteh kein Wort von dem was Du da schreibst.
Du willst den Ordner Einkauf löschen können, aber der Inhalt soll erhalten bleiben? :confused:

Wenn Du den Order Einkauf löschen möchtest, brauchst Du:
1. Schreibrecht für alle Dateien und Verzeichnisse, die sich in Einkauf befinden
2. Schreibrechte für den Workgroup Ordner

Das was Du "vermutlich" möchtest geht mit den Unix-Zugriffsrechten nicht. Du könntest das z.B. mit Posix Capabilities lösen.
Da steht der Aufwand aber in keinem vernünftigen Verhältnis zum Nutzen.

Ein User löscht aus versehen den Ordner einkauf, verkauf usw. dann kommt die Fehlermeldung das es nicht möglich ist da der User keine Schreibrechte in Workgroup hat, aber für den ornder einkauf besitzt er RWX und dadurch wird der Inhalt gelöscht



kurz und bündig, du möchtes das rekursive löschen von Dateien und Verzeichnissen unterbinden, wenn du in einem übergeordneten Verzeichnis bist.
Das Problem dürfte hier einfach die Reihenfolge sein, in der das ganze abgearbeitet wird.


Ich glaube das ist das Problem :(