Rechte für gemeinsamen Ordner

Probleme mit Samba, NFS, FTP und Co.
Antworten
c902
Beiträge: 5
Registriert: 15.10.2017 20:49:50

Rechte für gemeinsamen Ordner

Beitrag von c902 » 15.10.2017 21:03:33

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

Benutzeravatar
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

Beitrag von jph » 15.10.2017 21:16:19

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.

c902
Beiträge: 5
Registriert: 15.10.2017 20:49:50

Re: Rechte für gemeinsamen Ordner

Beitrag von c902 » 15.10.2017 21:30:36

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.

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: Rechte für gemeinsamen Ordner

Beitrag von weshalb » 15.10.2017 23:13:49

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/

63slippy
Beiträge: 16
Registriert: 20.12.2016 18:15:28
Wohnort: Sulzbach/Saar

Re: Rechte für gemeinsamen Ordner

Beitrag von 63slippy » 16.10.2017 01:49:17

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


Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: Rechte für gemeinsamen Ordner

Beitrag von weshalb » 16.10.2017 07:19:50

63slippy hat geschrieben: ↑ zum Beitrag ↑
16.10.2017 01:49:17
geht das nicht mit dem Sticky-bit.
Eher nicht:

http://www.zettel-it.de/docs/SUID-SGID- ... ky-Bit.pdf
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.
Schau dir SGID an.

Benutzeravatar
MSfree
Beiträge: 10684
Registriert: 25.09.2007 19:59:30

Re: Rechte für gemeinsamen Ordner

Beitrag von MSfree » 16.10.2017 09:11:41

c902 hat geschrieben: ↑ zum Beitrag ↑
15.10.2017 21:03:33
egal, welche Berechtigung die Datei zuvor hatte
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.

Benutzeravatar
Meillo
Moderator
Beiträge: 8781
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Rechte für gemeinsamen Ordner

Beitrag von Meillo » 16.10.2017 09:53:56

Wie weshalb schreibt: Setgid plus umask. (Fuer die meisten Faelle, aber nicht alle.)

... oder mit ACLs ... falls man diese schwarze Magie praktizieren will.
Use ed once in a while!

c902
Beiträge: 5
Registriert: 15.10.2017 20:49:50

Re: Rechte für gemeinsamen Ordner

Beitrag von c902 » 16.10.2017 22:00:05

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!

Benutzeravatar
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

Beitrag von jph » 17.10.2017 17:21:21

Wäre ein per cron ausgeführtes chgrp eine Alternative?

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: Rechte für gemeinsamen Ordner

Beitrag von weshalb » 17.10.2017 18:37:31

jph hat geschrieben: ↑ zum Beitrag ↑
17.10.2017 17:21:21
Wäre ein per cron ausgeführtes chgrp eine Alternative?
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.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Rechte für gemeinsamen Ordner

Beitrag von scientific » 18.10.2017 09:05:48

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
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

Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Re: Rechte für gemeinsamen Ordner

Beitrag von Trollkirsche » 01.02.2018 01:31:20

Meillo hat geschrieben: ↑ zum Beitrag ↑
16.10.2017 09:53:56
Wie weshalb schreibt: Setgid plus umask. (Fuer die meisten Faelle, aber nicht alle.)

... oder mit ACLs ... falls man diese schwarze Magie praktizieren will.
:mrgreen: :THX:

Trollkirsche
Beiträge: 497
Registriert: 08.08.2015 15:03:09
Wohnort: Schweiz Zürich

Re: Rechte für gemeinsamen Ordner

Beitrag von Trollkirsche » 02.02.2018 01:06:24

c902 hat geschrieben: ↑ zum Beitrag ↑
15.10.2017 21:30:36
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.
Wenn ich richtig liege, kannst du das gut mit SGID Bit lösen:

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?

dc2
Beiträge: 2
Registriert: 06.05.2020 22:15:52
Kontaktdaten:

Re: Rechte für gemeinsamen Ordner

Beitrag von dc2 » 06.05.2020 22:47:00

Mit ACLs geht das nicht.

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
...und die zweite:

Code: Alles auswählen

mkdir common-dir
setfacl -m group:common-group:rwx common-dir
setfacl -m default:group:common-group:rwx common-dir
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.

dc2
Beiträge: 2
Registriert: 06.05.2020 22:15:52
Kontaktdaten:

Re: Rechte für gemeinsamen Ordner

Beitrag von dc2 » 03.11.2023 12:01:15

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:

Code: Alles auswählen

bindfs -g family -p ug+rwD --multithreaded ~/data/family /srv/media/family
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.

Antworten