Rechte für gemeinsamen Ordner
Rechte für gemeinsamen Ordner
Hallo!
nachdem ich mich die letzten Stunden durch umask, acl und dgl. geackert habe, aber trotzdem nicht fündig wurde, bin ich nun hier...
User sollen via NFS oder SSH auf ein NAS (Debian) zugreifen können, die Clients sind ebenfalls Linux (Mint Cinnamon). Ich möchte auf meinem NAS 1 Ordner mit Bildern freigeben auf dem alle Mitglieder der group "family" schreiben können sollen. Alle Files, die irgendjem. aus dieser Gruppe auf diesen Ordner ablegt, sollen von anderen lesbar sein, egal ob in der Konsole oder GUI, egal ob eine neue Datei, oder eine bestehende kopiert oder verschoben wurde. Und vorallem, egal, welche Berechtigung die Datei zuvor hatte. User, die nicht Mitglied der group "family" sind, sollen die Dateien nicht sehen können und auch nicht das Verzeichnis browsen können.
Wie kann ich das bewerkstelligen?
Vielen Dank
Chris
nachdem ich mich die letzten Stunden durch umask, acl und dgl. geackert habe, aber trotzdem nicht fündig wurde, bin ich nun hier...
User sollen via NFS oder SSH auf ein NAS (Debian) zugreifen können, die Clients sind ebenfalls Linux (Mint Cinnamon). Ich möchte auf meinem NAS 1 Ordner mit Bildern freigeben auf dem alle Mitglieder der group "family" schreiben können sollen. Alle Files, die irgendjem. aus dieser Gruppe auf diesen Ordner ablegt, sollen von anderen lesbar sein, egal ob in der Konsole oder GUI, egal ob eine neue Datei, oder eine bestehende kopiert oder verschoben wurde. Und vorallem, egal, welche Berechtigung die Datei zuvor hatte. User, die nicht Mitglied der group "family" sind, sollen die Dateien nicht sehen können und auch nicht das Verzeichnis browsen können.
Wie kann ich das bewerkstelligen?
Vielen Dank
Chris
- jph
- Beiträge: 1049
- Registriert: 06.12.2015 15:06:07
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Greven/Westf.
Re: Rechte für gemeinsamen Ordner
Ein Ordner, der family gehört und 770 ist, sollte einen Teil deiner Anforderung lösen. Nur Mitglieder besagter Gruppe und der Eigentümer des Ordner können seinen Inhalt sehen.
Das ändert jedoch nicht die Attribute der enthaltenen Dateien. Deine Anforderung ist an der Stelle unklar beschrieben.
Das ändert jedoch nicht die Attribute der enthaltenen Dateien. Deine Anforderung ist an der Stelle unklar beschrieben.
Re: Rechte für gemeinsamen Ordner
Danke für den ersten Hinweis, ich versuche hier noch mal genauer zu werden:
user1 und user2 sind beide Mitglied der group "family".
directory "bilder" soll für beide sichtbar sein, schreibbar, lesbar
user1 kopiert eine Datei (user = user1, group=user1) von einem anderen directory, oder verschiebt eine Datei von einem anderen Directory -> in beiden Fällen soll die Datei im Zielordner "bilder" als user=user1 und group=family haben. Ausserdem soll die Berechtigung im Zielordner 770 sein, egal welche sie vorher hatte.
user1 und user2 sind beide Mitglied der group "family".
directory "bilder" soll für beide sichtbar sein, schreibbar, lesbar
user1 kopiert eine Datei (user = user1, group=user1) von einem anderen directory, oder verschiebt eine Datei von einem anderen Directory -> in beiden Fällen soll die Datei im Zielordner "bilder" als user=user1 und group=family haben. Ausserdem soll die Berechtigung im Zielordner 770 sein, egal welche sie vorher hatte.
Re: Rechte für gemeinsamen Ordner
https://wiki.debianforum.de/SetGID_auf_Verzeichnissen
Ist zwar für Samba, aber eventuell wird dir hier mask und umask sehr gut erklärt.
http://blog.jonaspasche.com/2010/11/24/ ... tevergabe/
Ist zwar für Samba, aber eventuell wird dir hier mask und umask sehr gut erklärt.
http://blog.jonaspasche.com/2010/11/24/ ... tevergabe/
Re: Rechte für gemeinsamen Ordner
Hm...grübel...wie war das noch
geht das nicht mit dem Sticky-bit.
Dann sollte die Gruppe family automatisch Eigentümer aller in dem Ordner erstellten Dateien sein. Ich hoffe ich rede gerade keinen Mist, muß das mal wieder nachlesen.
Gesendet von meinem SM-A700FD mit Tapatalk
geht das nicht mit dem Sticky-bit.
Dann sollte die Gruppe family automatisch Eigentümer aller in dem Ordner erstellten Dateien sein. Ich hoffe ich rede gerade keinen Mist, muß das mal wieder nachlesen.
Gesendet von meinem SM-A700FD mit Tapatalk
Re: Rechte für gemeinsamen Ordner
Eher nicht:
http://www.zettel-it.de/docs/SUID-SGID- ... ky-Bit.pdf
Schau dir SGID an.Dies kann in der Praxis von Benutzern eingesetzt werden, die Dateien auf einem GNU/Linux-System einer großen Benutzer-Schar zugänglich machen wollen, aber verhindern wollen, dass etwa die Dateien gelöscht oder manipuliert werden. Sie sollen einzig und allein gelesen oder ausgeführt werden. Dies könnte auch in einem Unternehmen oder von Softwareentwicklern genutzt werden, um Dateien allen Benutzern eines Systems zugänglich zu machen, ohne dass deren Löschung oder Änderung befürchtet werden muss.
Re: Rechte für gemeinsamen Ordner
Genau das läßt sich nicht erfüllen.
Dateirechte werden unter Linux nie vom Elternverzeichnis auf die dort bereits vorhandenen Dateien und/oder Unterverzeichnisse vererbt. Und das ist durchaus so gewollt und sinnvoll.
Bei bestehende Dateien muß man durch Besitzerwechsel mit chown und/oder Gruppenwechsel mit chgrp und/oder durch Berechtigungswechsel mit chmod von Hand dafür sorgen, daß die Rechte anschließend so gesetzt sind, wie man es möchte.
Re: Rechte für gemeinsamen Ordner
Wie weshalb schreibt: Setgid plus umask. (Fuer die meisten Faelle, aber nicht alle.)
... oder mit ACLs ... falls man diese schwarze Magie praktizieren will.
... oder mit ACLs ... falls man diese schwarze Magie praktizieren will.
Use ed once in a while!
Re: Rechte für gemeinsamen Ordner
hier mal ein Zwischenstand, was ich ausprobiert habe:
mkdir /home/family
chown :family /home/family
chmod 770 /home/family
chmod g+rwxs /home/family
bei den usern in .profile: umask 007
file in user home directory erzeugt und 1 x kopiert, 1 x verschoben
kopiert: -rw-rw---- user family --> also o.k.
verschoben: -rw-rw---- user user --> also falsche Gruppe
muss mich wohl mit der schwarzen Magie "ACL" auseinander setzen.
Ausserdem wird ja .profile nicht geladen, wenn ich Dateien z.B. in nautilus kopiere/verschiebe (oder?), bzw. wie sich das verhält, wenn die Verzeichnisse remote sind und via NFS oder SSL eingebunden werden.
Weitere Hinweise herzlich willkommen... Danke!
mkdir /home/family
chown :family /home/family
chmod 770 /home/family
chmod g+rwxs /home/family
bei den usern in .profile: umask 007
file in user home directory erzeugt und 1 x kopiert, 1 x verschoben
kopiert: -rw-rw---- user family --> also o.k.
verschoben: -rw-rw---- user user --> also falsche Gruppe
muss mich wohl mit der schwarzen Magie "ACL" auseinander setzen.
Ausserdem wird ja .profile nicht geladen, wenn ich Dateien z.B. in nautilus kopiere/verschiebe (oder?), bzw. wie sich das verhält, wenn die Verzeichnisse remote sind und via NFS oder SSL eingebunden werden.
Weitere Hinweise herzlich willkommen... Danke!
- jph
- Beiträge: 1049
- Registriert: 06.12.2015 15:06:07
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Greven/Westf.
Re: Rechte für gemeinsamen Ordner
Wäre ein per cron ausgeführtes chgrp eine Alternative?
Re: Rechte für gemeinsamen Ordner
Stimmt, das habe ich bei jemanden auch mal stündlich zu laufen gehabt. Ist ne gute Alternative. Allerdings weiß ich nicht, wie es bei zig Dateien mit vielen Usern im Livebetrieb aussieht.
-
- Beiträge: 3020
- Registriert: 03.11.2009 13:45:23
- Lizenz eigener Beiträge: Artistic Lizenz
-
Kontaktdaten:
Re: Rechte für gemeinsamen Ordner
Ich werfe mal systemd-path und incron als Stichworte in die Runde.
Systemd-Path kann nur Verzeichnisse überwachen, incron auch einzelne Files.
Bei Änderung und Hinzufügen lässt man dann ein Skript starten, welches dann Dateiattribute anpasst.
Lg scientific
Systemd-Path kann nur Verzeichnisse überwachen, incron auch einzelne Files.
Bei Änderung und Hinzufügen lässt man dann ein Skript starten, welches dann Dateiattribute anpasst.
Lg scientific
dann putze ich hier mal nur...
Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie
auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main
Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie
auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main
-
- Beiträge: 497
- Registriert: 08.08.2015 15:03:09
- Wohnort: Schweiz Zürich
Re: Rechte für gemeinsamen Ordner
Meillo hat geschrieben:16.10.2017 09:53:56Wie weshalb schreibt: Setgid plus umask. (Fuer die meisten Faelle, aber nicht alle.)
... oder mit ACLs ... falls man diese schwarze Magie praktizieren will.
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
![Thumbs Up :THX:](./images/smilies/thumbup.gif)
-
- Beiträge: 497
- Registriert: 08.08.2015 15:03:09
- Wohnort: Schweiz Zürich
Re: Rechte für gemeinsamen Ordner
Wenn ich richtig liege, kannst du das gut mit SGID Bit lösen:c902 hat geschrieben:15.10.2017 21:30:36Danke für den ersten Hinweis, ich versuche hier noch mal genauer zu werden:
user1 und user2 sind beide Mitglied der group "family".
directory "bilder" soll für beide sichtbar sein, schreibbar, lesbar
user1 kopiert eine Datei (user = user1, group=user1) von einem anderen directory, oder verschiebt eine Datei von einem anderen Directory -> in beiden Fällen soll die Datei im Zielordner "bilder" als user=user1 und group=family haben. Ausserdem soll die Berechtigung im Zielordner 770 sein, egal welche sie vorher hatte.
Gruppe und Eigentümer des Verzeichnisses und alle darunterliegenden Verzeichnisse bzw. Dateien festlegen:
chown -R root:family bilder/
Rechte für den Ordner und alle darunterliegenden Verzeichnisse bzw. Dateien setzen:
chmod -R 770 bilder/
Das SGID Bit für den Ordner aktivieren:
chmod g+s bilder/
Nun sollte jede im Ordner erstellte Datei als Gruppe "family" erhalten und nicht mehr die primäre Gruppe des Benutzers. Somit ist sie von jedem lesbar, der sich in der Gruppe "family" befindet. Die Datei ist nun von allen Mitgliedern in der Gruppe "family" löschbar. Soll dies nur der Benutzer selbst können, musst du noch auf den Ordner das Sticky Bit setzen.
Ansonsten gibts meines Wissens noch die Default ACL, mit der du ein Template an Rechten erstellen und einem Ordner zuweisen kannst.
Kommt das deinem Wunsch etwas näher?
Re: Rechte für gemeinsamen Ordner
Mit ACLs geht das nicht.
Ich habe zwei Varianten probiert, die erste:
...und die zweite:
common-dir ist jeweils das Verzeichnis, in das alle Mitglieder der Gruppe common-group schreiben können sollen.
Beide Varianten funktionieren -- eigentlich. Solange die Nutzer mittels touch Dateien anlegen und mit mkdir Unterverzeichnisse, wird die Default-ACL brav auf diese vererbt. Aber wehe, es kopiert jemand mit cp etwas rein. Da funkioniert zwar das setgid noch, aber das Gruppen-Schreibrecht geht verloren (bzw. in der zweiten Variante wird die falsche mask gesetzt). Noch dicker kommts bei mv. Schiebt jemand eine Datei von außerhalb ins common-dir rein, wird die Default-ACL komplett ignoriert.
Ein bißchen Googlen ergab dann auch nur, daß andere das gleiche Problem haben. Mein Fazit ist hier, daß ACLs sich für diesen Anwendungsfall schlicht nicht eignen. setgid und umask übrigens auch nicht, denn auf die umask müssen die Nutzer selbst aufpassen, und das will man ja gerade vermeiden.
Als nächstes probiere ich bindfs. Ich werde hier berichten, wenn es damit tatsächlich funktioniert.
Ich habe zwei Varianten probiert, die erste:
Code: Alles auswählen
mkdir common-dir
chgrp common-group common-dir
chmod g+w common-dir
chmod g+s common-dir
setfacl -m default:group::rwx common-dir
Code: Alles auswählen
mkdir common-dir
setfacl -m group:common-group:rwx common-dir
setfacl -m default:group:common-group:rwx common-dir
Beide Varianten funktionieren -- eigentlich. Solange die Nutzer mittels touch Dateien anlegen und mit mkdir Unterverzeichnisse, wird die Default-ACL brav auf diese vererbt. Aber wehe, es kopiert jemand mit cp etwas rein. Da funkioniert zwar das setgid noch, aber das Gruppen-Schreibrecht geht verloren (bzw. in der zweiten Variante wird die falsche mask gesetzt). Noch dicker kommts bei mv. Schiebt jemand eine Datei von außerhalb ins common-dir rein, wird die Default-ACL komplett ignoriert.
Ein bißchen Googlen ergab dann auch nur, daß andere das gleiche Problem haben. Mein Fazit ist hier, daß ACLs sich für diesen Anwendungsfall schlicht nicht eignen. setgid und umask übrigens auch nicht, denn auf die umask müssen die Nutzer selbst aufpassen, und das will man ja gerade vermeiden.
Als nächstes probiere ich bindfs. Ich werde hier berichten, wenn es damit tatsächlich funktioniert.
Re: Rechte für gemeinsamen Ordner
Mit bindfs geht es und läuft jetzt hier seit einigen Jahren stabil.
Ich habe dazu einen Nutzer share angelegt, dem gehören die eigentlichen Daten. In dessen crontab ist ein Eingtrag unter @reboot:
Unter -p kann man die gewünschten Rechte einstellen. bindfs setzt die Rechte entsprechend und erzwingt das auch, d.h. es kann nicht passieren, daß ein Nutzer eine Datei in das Verzeichnis schiebt mit komischen Berechtigungen und die dann für die anderen nicht lesbar ist.
Manche Werkzeuge beschweren sich, daß sie Rechte und/oder Eigentümer nicht erhalten können. Bei mv z.B. passiert das. Das ist ja aber irgendwo auch korrekt so. Funktionieren tut trotzdem alles.
Export mit ssh bzw. sshfs klappt problemlos. Export mit NFSv4 geht nicht richtig; das betrifft aber alle FUSE-Mounts.
Ich habe dazu einen Nutzer share angelegt, dem gehören die eigentlichen Daten. In dessen crontab ist ein Eingtrag unter @reboot:
Code: Alles auswählen
bindfs -g family -p ug+rwD --multithreaded ~/data/family /srv/media/family
Manche Werkzeuge beschweren sich, daß sie Rechte und/oder Eigentümer nicht erhalten können. Bei mv z.B. passiert das. Das ist ja aber irgendwo auch korrekt so. Funktionieren tut trotzdem alles.
Export mit ssh bzw. sshfs klappt problemlos. Export mit NFSv4 geht nicht richtig; das betrifft aber alle FUSE-Mounts.