Hallo allerseits,
ich stehe vor folgendem Problem: Jemand betreibt ein Windows-Netzwerk mit Linux-Datenserver. Um genau zu sein läuft Samba auf einer Ubuntu Server Version.
Jetzt soll das Netzwerk umstrukturiert werden, sodass jeder wirklich nur noch an die Daten ran kommt, an die er auch ran darf. Dabei ist in der Planung ein ziemlich wirres Konstrukt aus vier großen Freigaben und recht vielen Unterordnern (teils mit weiteren Unterordnern) entstanden. Innerhalb dieser Unterordner soll nun auf Nutzerebene geregelt sein, wer gar nicht zugreifen, lesen oder schreiben darf. Es gibt zwar nur 10 Benutzer, allerdings sieht die Rechteverteilung quasi bei jedem Verzeichnis anders aus. Es gibt kein festes Schema und folglich kommt man da mit den normalen Nutzer- und Gruppenrechten (ACL) nicht weit.
Samba selbst bietet soweit ich das sehe, nur die Möglichkeit vor, die Rechte auf dem Freigabelevel zu verwalten. Spezielle Zugriffsrechte für Unterordner können nicht definiert werden (da greifen dann eben die auf den Objekten definierten Rechte.) Wenn man eine Freigabe innerhalb einer Freigabe (mit abweichenden Rechten) definiert, hat das keinen Einfluss für die Zugriffe, die über die übergeordneten Freigabe erfolgen.
Hat jemand einen Tipp, wie man so ein wirres Ordner- und Rechte-Konstrukt gut umsetzen kann? Es muss nicht Samba sein, sollte sich aber an den Windows-Arbeitsstationen sauber einbinden lassen.
(Mit Samba 4 habe ich selbst noch keine Erfahrungen gesammelt. Wäre das beschriebene Szenario mit einem Samba-AD und Gruppenrichtlinien möglich?)
Schon mal Danke für alle Vorschläge Manuel
Hallo Manuel,
Wenn ich MS richtig verstanden habe, kannst Du die Gruppenrichtlinien durch ein Shell-Skript ersetzen, das die Rechte im Stundentakt aktualisiert.
Grundsätzlich sind – denke ich – ACLs für Gruppen die beste Lösung in Verbindung mit einer durchdachten Verzeichnisstruktur. Wenn man Rechteverwaltung einführt sollte solch einen Umstrukturierung mit ins Programm aufgenommen werden. Ansonsten habt Ihr das Problem bei der nächsten Personalveränderung wieder auf dem Tisch.
ACLs kannst Du auch für einzelne Dateien definieren und das kann ein Shell-Skript für Dich erledigen wenn es nicht per Hand geht.
Allerdings liegt die natürliche Grenze dort, wo man in ein Unterverzeichnis wechseln soll, dessen übergeordnetes man nicht betreten darf. In dem Fall hilft nur aufräumen oder eine echte Datenbank, die via virtuellem Dateisystem eingebunden wird.
Viele Grüße
Tobias
On 24.08.2015 19:48, Manuel Weissbach wrote:
Hallo allerseits,
ich stehe vor folgendem Problem: Jemand betreibt ein Windows-Netzwerk mit Linux-Datenserver. Um genau zu sein läuft Samba auf einer Ubuntu Server Version.
Jetzt soll das Netzwerk umstrukturiert werden, sodass jeder wirklich nur noch an die Daten ran kommt, an die er auch ran darf. Dabei ist in der Planung ein ziemlich wirres Konstrukt aus vier großen Freigaben und recht vielen Unterordnern (teils mit weiteren Unterordnern) entstanden. Innerhalb dieser Unterordner soll nun auf Nutzerebene geregelt sein, wer gar nicht zugreifen, lesen oder schreiben darf. Es gibt zwar nur 10 Benutzer, allerdings sieht die Rechteverteilung quasi bei jedem Verzeichnis anders aus. Es gibt kein festes Schema und folglich kommt man da mit den normalen Nutzer- und Gruppenrechten (ACL) nicht weit.
Samba selbst bietet soweit ich das sehe, nur die Möglichkeit vor, die Rechte auf dem Freigabelevel zu verwalten. Spezielle Zugriffsrechte für Unterordner können nicht definiert werden (da greifen dann eben die auf den Objekten definierten Rechte.) Wenn man eine Freigabe innerhalb einer Freigabe (mit abweichenden Rechten) definiert, hat das keinen Einfluss für die Zugriffe, die über die übergeordneten Freigabe erfolgen.
Hat jemand einen Tipp, wie man so ein wirres Ordner- und Rechte-Konstrukt gut umsetzen kann? Es muss nicht Samba sein, sollte sich aber an den Windows-Arbeitsstationen sauber einbinden lassen.
(Mit Samba 4 habe ich selbst noch keine Erfahrungen gesammelt. Wäre das beschriebene Szenario mit einem Samba-AD und Gruppenrichtlinien möglich?)
Schon mal Danke für alle Vorschläge Manuel
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
Hallo Tobias,
danke für deine Antwort.
Leider sprengen die Wünsche, die mir für den Verzeichnisbaum (und die Rechte) vorgelegt wurden, das, was aus meiner Sicht mit ACLs möglich ist. Um das umzusetzen, müsste ich einzelnen Verzeichnissen mehrere Besitzer bzw. Gruppen zuweisen - was ja nicht machbar ist.
Mal ein Beispiel, was gewünscht ist:
Freigabe "test" Ordner: /test/ erlaubte Nutzer (Rechte): n1 (rw), n2 (rw), n3 (rw)
Unterordner: /test/test2/ erlaubte Nutzer: n1 (rw), n3 (r)
Unterordner: /test/test3/ erlaubte Nutzer: n2 (r), n3 (rw)
Unterordner: /test/test4/ erlaubte Nutzer: n1(r), n2 (rw)
So etwas in der Art liegt mir als Wunsch vor, mit über 100 Verzeichnissen und dazu jeweils Angaben, welcher Nutzer welchen Zugriff erhält.
Das lässt sich nicht sinnvoll in Gruppen unterteilen (bei den Rechtekombinationen würden unzählige Gruppen entstehen) und da ich jedem Verzeichnis auch nur einen Besitzer und eine Gruppe zuweisen kann, ist es meiner Ansicht nach kaum umsetzbar.
Zu dem Shellskript: Soweit ich dich richtig verstanden habe, wäre das Shellskript dazu da, die Rechte regelmäßig neu zu setzen, bzw. zu korrigieren. Da ist mir gerade noch nicht ganz klar, wofür das nötig wäre? (Um von Nutzern erstellte Daten einer anderen Gruppe zuzuweisen, damit auch andere Nutzer Zugriff haben?)
Viele Grüße Manuel
On Mon, 24 Aug 2015 20:49:38 +0200 Tobias Schlemmer Tobias.Schlemmer@tu-dresden.de wrote:
Hallo Manuel,
Wenn ich MS richtig verstanden habe, kannst Du die Gruppenrichtlinien durch ein Shell-Skript ersetzen, das die Rechte im Stundentakt aktualisiert.
Grundsätzlich sind – denke ich – ACLs für Gruppen die beste Lösung in Verbindung mit einer durchdachten Verzeichnisstruktur. Wenn man Rechteverwaltung einführt sollte solch einen Umstrukturierung mit ins Programm aufgenommen werden. Ansonsten habt Ihr das Problem bei der nächsten Personalveränderung wieder auf dem Tisch.
ACLs kannst Du auch für einzelne Dateien definieren und das kann ein Shell-Skript für Dich erledigen wenn es nicht per Hand geht.
Allerdings liegt die natürliche Grenze dort, wo man in ein Unterverzeichnis wechseln soll, dessen übergeordnetes man nicht betreten darf. In dem Fall hilft nur aufräumen oder eine echte Datenbank, die via virtuellem Dateisystem eingebunden wird.
Viele Grüße
Tobias
On 24.08.2015 19:48, Manuel Weissbach wrote:
Hallo allerseits,
ich stehe vor folgendem Problem: Jemand betreibt ein Windows-Netzwerk mit Linux-Datenserver. Um genau zu sein läuft Samba auf einer Ubuntu Server Version.
Jetzt soll das Netzwerk umstrukturiert werden, sodass jeder wirklich nur noch an die Daten ran kommt, an die er auch ran darf. Dabei ist in der Planung ein ziemlich wirres Konstrukt aus vier großen Freigaben und recht vielen Unterordnern (teils mit weiteren Unterordnern) entstanden. Innerhalb dieser Unterordner soll nun auf Nutzerebene geregelt sein, wer gar nicht zugreifen, lesen oder schreiben darf. Es gibt zwar nur 10 Benutzer, allerdings sieht die Rechteverteilung quasi bei jedem Verzeichnis anders aus. Es gibt kein festes Schema und folglich kommt man da mit den normalen Nutzer- und Gruppenrechten (ACL) nicht weit.
Samba selbst bietet soweit ich das sehe, nur die Möglichkeit vor, die Rechte auf dem Freigabelevel zu verwalten. Spezielle Zugriffsrechte für Unterordner können nicht definiert werden (da greifen dann eben die auf den Objekten definierten Rechte.) Wenn man eine Freigabe innerhalb einer Freigabe (mit abweichenden Rechten) definiert, hat das keinen Einfluss für die Zugriffe, die über die übergeordneten Freigabe erfolgen.
Hat jemand einen Tipp, wie man so ein wirres Ordner- und Rechte-Konstrukt gut umsetzen kann? Es muss nicht Samba sein, sollte sich aber an den Windows-Arbeitsstationen sauber einbinden lassen.
(Mit Samba 4 habe ich selbst noch keine Erfahrungen gesammelt. Wäre das beschriebene Szenario mit einem Samba-AD und Gruppenrichtlinien möglich?)
Schon mal Danke für alle Vorschläge Manuel
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
Am 25.08.2015 um 12:08 schrieb Manuel Weissbach:
Hallo Tobias,
danke für deine Antwort.
Leider sprengen die Wünsche, die mir für den Verzeichnisbaum (und die Rechte) vorgelegt wurden, das, was aus meiner Sicht mit ACLs möglich ist. Um das umzusetzen, müsste ich einzelnen Verzeichnissen mehrere Besitzer bzw. Gruppen zuweisen - was ja nicht machbar ist.
Mal ein Beispiel, was gewünscht ist:
Freigabe "test" Ordner: /test/ erlaubte Nutzer (Rechte): n1 (rw), n2 (rw), n3 (rw)
Unterordner: /test/test2/ erlaubte Nutzer: n1 (rw), n3 (r)
Unterordner: /test/test3/ erlaubte Nutzer: n2 (r), n3 (rw)
Unterordner: /test/test4/ erlaubte Nutzer: n1(r), n2 (rw)
So etwas in der Art liegt mir als Wunsch vor, mit über 100 Verzeichnissen und dazu jeweils Angaben, welcher Nutzer welchen Zugriff erhält.
Das lässt sich nicht sinnvoll in Gruppen unterteilen (bei den Rechtekombinationen würden unzählige Gruppen entstehen) und da ich jedem Verzeichnis auch nur einen Besitzer und eine Gruppe zuweisen kann, ist es meiner Ansicht nach kaum umsetzbar.
Zu dem Shellskript: Soweit ich dich richtig verstanden habe, wäre das Shellskript dazu da, die Rechte regelmäßig neu zu setzen, bzw. zu korrigieren. Da ist mir gerade noch nicht ganz klar, wofür das nötig wäre? (Um von Nutzern erstellte Daten einer anderen Gruppe zuzuweisen, damit auch andere Nutzer Zugriff haben?)
ich glaube du hast ACL nicht verstanden, wenn dein Dateisystem ACL unterstützt dann kannst du für einen Ordner oder Datei mehre User oder Gruppen zu ordnen. dies kann man nicht mit chown machen sondern mit setfacl
und man siet dies auch nicht wirklich mit ls -- ls -la /opt/production_mysql/ insgesamt 64 drwxr-xr-x+ 21 root root 4096 4. Aug 13:15 . drwxr-xr-x+ 6 root root 4096 4. Aug 07:55 .. drwxr-xr-x 4 root root 4096 7. Aug 16:47 backup drwxr-xr-x+ 2 root root 4096 5. Jun 10:28 bin drwxr-xr-x+ 2 root root 6 11. Jun 2014 boot -rw-r--r-- 1 root root 4 4. Aug 13:16 counter_file drwxr-xr-x+ 5 root root 4096 4. Aug 10:49 dev drwxr-xr-x+ 66 root root 4096 4. Aug 09:43 etc --- das + deutet darauf hin das acl gibt --- sondern mit getfacl
getfacl /opt/production_mysql # file: opt/production_mysql # owner: root # group: root user::rwx user:n1:r-- group::r-x mask::r-x other::r-x
klar wenn man so etwas "händisch" erledigen will bei hundert Ordner ist das nicht einfach aber möglicherweise könnte ein script die kaffepause nicht gefährden
Andreas
Viele Grüße Manuel
On Mon, 24 Aug 2015 20:49:38 +0200 Tobias Schlemmer Tobias.Schlemmer@tu-dresden.de wrote:
Hallo Manuel,
Wenn ich MS richtig verstanden habe, kannst Du die Gruppenrichtlinien durch ein Shell-Skript ersetzen, das die Rechte im Stundentakt aktualisiert.
Grundsätzlich sind – denke ich – ACLs für Gruppen die beste Lösung in Verbindung mit einer durchdachten Verzeichnisstruktur. Wenn man Rechteverwaltung einführt sollte solch einen Umstrukturierung mit ins Programm aufgenommen werden. Ansonsten habt Ihr das Problem bei der nächsten Personalveränderung wieder auf dem Tisch.
ACLs kannst Du auch für einzelne Dateien definieren und das kann ein Shell-Skript für Dich erledigen wenn es nicht per Hand geht.
Allerdings liegt die natürliche Grenze dort, wo man in ein Unterverzeichnis wechseln soll, dessen übergeordnetes man nicht betreten darf. In dem Fall hilft nur aufräumen oder eine echte Datenbank, die via virtuellem Dateisystem eingebunden wird.
Viele Grüße
Tobias
On 24.08.2015 19:48, Manuel Weissbach wrote:
Hallo allerseits,
ich stehe vor folgendem Problem: Jemand betreibt ein Windows-Netzwerk mit Linux-Datenserver. Um genau zu sein läuft Samba auf einer Ubuntu Server Version.
Jetzt soll das Netzwerk umstrukturiert werden, sodass jeder wirklich nur noch an die Daten ran kommt, an die er auch ran darf. Dabei ist in der Planung ein ziemlich wirres Konstrukt aus vier großen Freigaben und recht vielen Unterordnern (teils mit weiteren Unterordnern) entstanden. Innerhalb dieser Unterordner soll nun auf Nutzerebene geregelt sein, wer gar nicht zugreifen, lesen oder schreiben darf. Es gibt zwar nur 10 Benutzer, allerdings sieht die Rechteverteilung quasi bei jedem Verzeichnis anders aus. Es gibt kein festes Schema und folglich kommt man da mit den normalen Nutzer- und Gruppenrechten (ACL) nicht weit.
Samba selbst bietet soweit ich das sehe, nur die Möglichkeit vor, die Rechte auf dem Freigabelevel zu verwalten. Spezielle Zugriffsrechte für Unterordner können nicht definiert werden (da greifen dann eben die auf den Objekten definierten Rechte.) Wenn man eine Freigabe innerhalb einer Freigabe (mit abweichenden Rechten) definiert, hat das keinen Einfluss für die Zugriffe, die über die übergeordneten Freigabe erfolgen.
Hat jemand einen Tipp, wie man so ein wirres Ordner- und Rechte-Konstrukt gut umsetzen kann? Es muss nicht Samba sein, sollte sich aber an den Windows-Arbeitsstationen sauber einbinden lassen.
(Mit Samba 4 habe ich selbst noch keine Erfahrungen gesammelt. Wäre das beschriebene Szenario mit einem Samba-AD und Gruppenrichtlinien möglich?)
Schon mal Danke für alle Vorschläge Manuel
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
Hallo Manuel,
Am 24.08.2015 um 19:48 schrieb Manuel Weissbach:
Es gibt zwar nur 10 Benutzer, allerdings sieht die Rechteverteilung quasi bei jedem Verzeichnis anders aus. Es gibt kein festes Schema und folglich kommt man da mit den normalen Nutzer- und Gruppenrechten (ACL) nicht weit.
"normale Nutzer- und Gruppenrechte" != ACL
Mit ACL kannst du das prima abbilden und die werden auch von Samba berücksichtigt. Eine weitere Spezialität von ACL ist die Eigenschaft "vererbt" (Schlüsselwort "default" für Verzeichnisse), die du so einfach mit Unix-Dateiberechtigungen nicht bekommst.
Am 25.08.2015 um 12:08 schrieb Manuel Weissbach:
Freigabe "test" Ordner: /test/ erlaubte Nutzer (Rechte): n1 (rw), n2 (rw), n3 (rw)
Unterordner: /test/test2/ erlaubte Nutzer: n1 (rw), n3 (r)
Du musst nicht nur Rechte für existierende Dateien vergeben, sondern auch neu angelegte Dateien berücksichtigen und das geht ganz einfach so:
setfacl -m user:n1:rwX,default:user:n1:rwX /test
Die Berechtigungen für die vorhandenen Dateien in diesem Ordner musst du per Hand (oder über ein entsprechendes find-Skript setzen.
Unter der Voraussetzung, dass /test/test2 und seine Unterordner die gleichen Rechte haben, ist es dort etwas einfacher:
setfacl -R -m user:n1:rwX,default:user:n1:rwX,user:n3:rX,default:user:n3:rX /test/test2
Das große X steht für "setze x, wenn es schon gesetzt ist". Damit kannst du also einfach Verzeichnissen (die das x normalerweise gesetzt haben) und Dateien die richtigen Zugriffsrechte mit einem Muster geben ohne nachher haufenweise Dateien mit x-Rechten zu haben.
Allgemein halte ich aber nicht viel von solch detaillierten Rechten für jeden Nutzer: * sie müssen gepflegt werden * sie bevormunden mündige Nutzer * sie zeugen von Misstrauen
Ich versuche die Devise umzusetzen: "Im Zweifel ist alles erlaubt" und "nur wenn absolut nötig wird etwas explizit verboten".
Hoffe, geholfen zu haben Uwe
lug-dd@mailman.schlittermann.de