Rechteproblem mit gemeinsam genutzten Dateien

C

cschroec

Aktives Mitglied
Thread Starter
Dabei seit
04.01.2005
Beiträge
299
Reaktionspunkte
1
Hallo liebes Forum,

ich habe folgendes Problem:

Ich benutze iphoto 06 über Alias mit 2 Benutzern mit der gleichen Bibliothek. Die gemeinsame Library liegt in gemeinsame Dateien, also im Ordner für alle Benutzer. Das Problem ist, dass sämtliche neu hinzugefügte Bilder stets die Rechte des Nutzers bekommen, der hinzugefügt hat. Das bedeutet, dass alle anderen standartmäßig nur lesen dürfen. Wwarum werden die allgemeinen rechte des shard-Ordners nicht automatisch auch auf neue Dateien vererbt, und wie kann ich es hinkriegen, dass das passiert?

Vielen Dank!

cschroec
 
Meine Zugriffsrechte im ganzen "Für alle Benutzer"-Ordner sind folgende:

Eigentümer: System
Rechte: Lesen und Schreiben

Gruppe: wheel
Rechte: Lesen und Schreiben

Andere: Lesen und Schreiben

Ist da vielleicht etwas schon nicht richtig? Keine Ahnung ob dies die normal richtigen Rechte und Gruppen dafür sind. Zu welcher Gruppe zählen normalerweise alle normalen Nutzerkonten?
 
Es sind die richtigen Rechte. In dem Fall zaehlen normale Benutzerkonten zu Andere - der Admin gehoert zu wheel.

Wenn du das Infofenster aufmachst und dir die Rechteverwaltung anschaust gibt es ganz unten den button "apply to enclosed items..." Nach meinem Verstaendnis muesste das allerdings automatisch so sein wenn ein Ordner mit Unterverzeichnissen in Gemeinsam Nutzen liegt.

Aber ich weiss nicht, ob iPhoto mit seiner verschachtelten Dateistruktur und das Verwenden von Alias Bibliotheken da irgenwelche Besonderheiten erfordert.
 
OK, normal müsste es gehen. Aber es geht leider nicht, dass neue Dateien alles richtig vererbt bekommen. Kann ich Benutzer bewußt einer Gruppe zuordnen? So könnte ich bewußt alle meine Nutzer dieser Gruppe zuordnen und diese dem gemeinsamen Ordner zuordnen. Wenn nämlich "wheel" die Gruppe der admins ist, dann kann ein anderer Nutzer ohne Admin-Rechte nicht drauf zugreifen, oder?

Ich habe die Gruppe "Andere" oder "Other" nicht gefunden...
 
Zuletzt bearbeitet:
andere sind alle - und ich wuerde keine Aenderungen in der Rechteverwaltung des Systems vornehmen ohne das du genau weisst was du tust.
 
Die Besonderhait am Ordner "Für alle Benutzer" ist das sog. Sticky Bit, das im Info Fenster des Finders (vermutlich der Einfachheit halber) nicht reflektiert wird.
Es bewirkt, dass alle Benutzer dort Dateien anlegen können, aber jeder Benutzer nur die Dateien löschen kann, die er selbst dort angelegt hat.

Das ist im Allgemeinen gut und sinvoll so und ich davon abraten, das zu ändern.
Wenn Du im Einzelfall ein echtes Problem damit hast, würde ich eher dazu raten, die Rechte eines bestimmten Ordner mithilfe eines Cronjobs regelmäßig automatisch anzupassen.

Ich könnte mir z.B. vorstellen, den Ordner einer neuen Gruppe "music" zuzuweisen und dieser alle Rechte zu geben. Alle Benutzer, die Zugriff haben sollen, müssen dann Mitglied dieser Gruppe werden und fertig ist die Laube.

Wenn Du Hilfe dafür brauchst, melde Dich noch einmal und gib ein paar Informationen, um welchen Ordner es genau geht, wie Du die Rechte gerne hättest und in welchen Zeitabständen die Änderung passiern solltee (z.B. stündlich).

lundehundt schrieb:
andere sind alle - und ich wuerde keine Aenderungen in der Rechteverwaltung des Systems vornehmen ohne das du genau weisst was du tust.
JFTR:
Andere sind nicht "alle" sonder "alle außer der Eigentümer und Mitglieder der Gruppe".
Das kann einen großen Unterschied machen ;).
 
Also ich würde sagen, dass Sticky-Bit ist genau mein Problem. Dateien, die in dem gemeinsamen Ordner liegen sollen explizit auch alle Nutzer meines Rechners ändern dürfen, egal wer sie angelegt hat. Idealerweise genau meine 2 echten Benutzer, also meine Freunidn und ich. Gemeinsame Dateien sind echt gemeinsame Dateien. Die liegen dort nur, weil wir iphoto und itunes gemeinsam nutzen. In itunes machts kein Problem, jedoch werden in iphoto neu importierte Bilder explizit durch den Benutzer angelegt, der sie importiert. Dies sorgt dafür, dass die Gruppe, die im Ordner gemeinsame Dateien zugeorsnet ist, explizit nur Leserechte auf die betreffenden Dateien bekommt. Dies möchte ich nicht. Wie kann ich neue Gruppen anlegen, und Benutzer zu der Gruppe hinzufügen? Wie schalte ich das Sticky Bit ab?

Vielen Dank für Eure Hilfe!
 
cschroec schrieb:
...
Dies möchte ich nicht. Wie kann ich neue Gruppen anlegen, und Benutzer zu der Gruppe hinzufügen? Wie schalte ich das Sticky Bit ab?
...
Beides ist doppelt gemoppelt.
Eine neue Gruppe kannt Du u.a. mit dem Netinfo Manager anlegen und bearbeiten. Am einfachsten durch Kopieren und Modifizieren einer vorhandenen Gruppe.
Ich empfehle dringend (!) vorher ein Backup der Netinfo Datenbank anzulegen, insbesonders wenn man ungeübt ist. Am einfachtsen geht das mit folgendem Kommando im Terminal (als admin Benutzer)
Code:
sudo periodic daily
.

Das Sticky Bit wirst Du so los:
Code:
sudo chmod -t /Users/Shared
Kann aber gut sein, dass es beim "Rechte reparieren" immer wieder angelegt wird. Das müsste man ausprobieren.

Empfehlenswert finde ich diese Methode ohnehin nicht und das Problem des fehlenden Schreibzugriffs auf "fremde" Dateien kann man damit auch nicht lösen. Ändern würde sich nur, dass Ben1 Im Ordner "Für alle Benutzer" Dateien löschen kann, die ihm nicht gehören.
 
Also hilft mir konkret das Abschalten des Sticky Bit nicht weiter.
Was empfiehlst Du genau?

Standardmäßig ist die Gruppe des Allusers-Verzeichnisses wheel. Mitglieder dieser Gruppe dürfen dort Schreiben. Wenn Dateien aber von meinem Nutzer dort angelegt wurden, ist mein Nutzer der Ersteller und die Gruppenmitglieder von wheel dürfen nur lesen. Ich habe testweise die Gruppe des Verzeichnisses geändert in "group", jedoch ohne Erfolg. Mitglieder dieser Gruppe dürfen auf erstellten Dateien auch nur lesen. Dies habe ich wieder rückgängig gemacht.

Bringt es was, wenn ich im netinfo manager meine 2 user zur Gruppe group oder staff oder wheel zuordnen und diese Gruppe dann dem ganzen Shared-Verzeichnis zuordnen?

Oder wird dies das Problem nicht lösen?
 
Das Problem ist also, dass egal welche Gruppe mit welchen Nutzern zugeordnet ist, die Schreibrechte der Gruppe abgeschaltet werden und nur dem erstellenden Nutzer das Schreibrecht automatisch zugesprochen wird. Ein Cronjob würde sicher helfen, der das vielleicht viertelstündlich macht. So rechenaufwendig ist die Sache ja nicht.

Im Prinzip müsste dieser Job nur die Rechte des Shard Folders stets wieder an alle seine Unterordner und Dateien setzen.
 
Das Problem ist nicht, dass die Rechte der Verzeichnisse nicht stimmen. Der Punkt ist, dass es eine sog. umask gibt. Diese gibt an, welche Rechte ein Objekt hat, dass ein Benutzer anlegt. Diese Maske ist standardmässig so gesetzt, dass ein Benutzer lediglich seine eigenen Daten schreiben (und damit auch löschen und verändern) darf.
Lade Dir mal das Tinkertool runter. Damit kannst Du die UMASK dann so abändern, dass auch die Benutzer Deiner Gruppe dies dürfen. Du musst dann lediglich noch alle Benutzer über den Netinfo Manager in die selbe Primärgruppe bringen.
Vorsicht: Lege Dir einfach einen anderen User zu, über den Du die Administrativen Tätigkeiten durchführst. Sonst musst Du alle Benutzer in wheel bringen, was dann ein Sicherheitsrisiko darstellt.
 
@sgmelin
ich würde weder die umask ändern, noch alle Benutzer in die gruppe wheel bringen.
Damit gräbt man jeweils unkalkulierbare Sicherheitslöscher, insbesondere, wenn man nicht sehr präzise weiss, was die jeweiligen Änderungen überhaupt bewirken.
Ich würde auch nichts am Ordner Shared ändern.

cschroec schrieb:
Was empfiehlst Du genau?
Mein Vorschlag ist, soweit unten ansetzen, wie möglich.
  1. Lege einen Ordner an, in dem alle Dateien (auch Ordner sind Dateien und können zur strukturierung verwendet werden) liegen, auf die eine bestimmte Gruppe von Benutzern bestimmt Zugriffsrechte haben soll (hier: alle Rechte).
    Nennen wir diesen Ordner hier einmal "familienordner".
  2. Lege dann alle Dateien/Ordner, auf die gemeinsam zugegriffen werden soll in diesen neuen Ordner
  3. Erstelle ein Backup der Netinfodatenbank und sichere sie weg, damit man im Notfall zurück kann.
  4. Erstelle eine neue Gruppe (im Beispiel: "familie")
  5. Füge die Benutzer, die Zugriff erhalten sollen, der Gruppe "familie" hinzu ()
  6. Ändere nun rekursiv Gruppe des Ordners "familienordner" auf "familie"
  7. Ändere nun rekursiv die Rechte des Ordners "familienordner" auf rwx (=alle Rechte)
  8. Zu guter Letzt erstellst Du einen Cronjob, der das Ganze regelmäßig durchführt
Das wars dann auch schon ;)
Und hier kommen in Kürze die Terminalkommandos, mit denen das alles zu bewerkstelligen ist. Ich möchte das vorher schnell testen, damit auch nichts schiefgehen kann.
 
OK, werde dies auch versuchen. Die obige Variante hat auch gefunzt. Habe meinem Nutzer eingeschränkte Rechte gegeben und einen Administratornutzer angelegt. Nun habe ich die umask mit Tinkertool für die 2 normalen Nutzer, den von meiner Freundin und von mir dahingehend geändert, dass alle Leute lokal am Rechner von uns erstellte Dateien ändern dürfen. So funzt es zumindest, da erstellte Dateien stets allgemein änderbar sind. Problem: Schaffe ich mir dadurch eine Sicherheitslücke in irgendeiner Form?
 
Reicht nicht im Prinzip auch ein Cronjob, der den Shared User-Ordner ständig mit seinen standardmäßigen Rechten versorgt? Ohne weitere Nutzergruppen?
 
So, da bin ich wieder.

cschroec schrieb:
Reicht nicht im Prinzip auch ein Cronjob, der den Shared User-Ordner ständig mit seinen standardmäßigen Rechten versorgt? Ohne weitere Nutzergruppen?
Welche "standardmäßige Rechte" meinst Du?

Das folgende ist in meinen Augen eine praktikable und saubere Lösung (sicher nicht die einzig mögliche)
Alle Kommandos in Code-Bereichen unten, führst Du als admin Benutzer im Terminal durch.
Gelegentlich wirst Du Deine Kennwort eingeben müssen (mindestens einmal).
Tippfehler können zu Fehlern führen, daher empfehle ich copy and paste.

Schritt 1:
Code:
sudo mkdir /Users/Shared/familienordner
Schritt 2: Machst du am einfachsten manuell im Finder
Schritt 3:
Code:
sudo periodic daily
Schritte 4+5:
Code:
sudo niutil -create / /users/family
sudo niutil -createprop /  /groups/family gid 550
sudo niutil -createprop /  /groups/family users [i]benutzer1 benutzer2[/i]
sudo niutil -createprop /  /groups/family passwd \*
Schritt 6:
Code:
sudo chgrp -R family /Users/Shared/familienordner
Schritt 7:
Code:
sudo chmod -R g=rwx /Users/Shared/familienordner
Schritt 8:
Code:
sudo echo -e "*\t*/4\t*\t*\t*\troot \
/bin/chgrp -R family /Users/Shared/familienordner \
&& /bin/chmod -R g=rwx /Users/Shared/familienordner" \
>> /etc/crontab

Die Namen von Ordnern/Gruppen/Benutzern kannst Du natürlich an Deine Bedürfnisse anpassen (keine Sonderzeichen/Umlaute etc.)
Viel Erfolg ;).
 
Wo ist der Parameter, der die Häufigkeit des Cronjobs festlegt, bzw. wie häufig läßt Du das laufen?
 
Sehe ich das richtig, das die oberen Abschnitte die Anlage und Zuweisung der Nutzergruppe mit spezifischen Rechten ist und der unterste Abschnitt einen Cronjob anlegt?
 
Standardmäßige Rechte sind die, die von Apple dem Ordner Shared bzw. "Für alle Benutzer" systemseitig mitgegeben wurden.
 
och jetzt komm, nicht alle zwei Minuten einen neuen Beitrag *äächz*
cschroec schrieb:
Wo ist der Parameter, der die Häufigkeit des Cronjobs festlegt, bzw. wie häufig läßt Du das laufen?
Alle 15 Minuten, wie von Dir gewünscht
Code:
sudo echo -e "*\t[color=red]*/4[/color]\t*\t*\t*\ ....
.
cschroec schrieb:
Sehe ich das richtig, das die oberen Abschnitte die Anlage und Zuweisung der Nutzergruppe mit spezifischen Rechten ist und der unterste Abschnitt einen Cronjob anlegt?
Die Schritte beziehen sich auf die im vorhergehenden Post genannten Nummern.
cschroec schrieb:
Standardmäßige Rechte sind die, die von Apple dem Ordner Shared bzw. "Für alle Benutzer" systemseitig mitgegeben wurden.
Wenn Du mit denen klarkommst, müssten wir doch nichts ändern. Dafür benötigst Du auch keinen Cronjob, die Rechte sind doch schon so ;).
 
Erstmal extrem großen Dank an Deine viele Mühe, die Du in die Beantwortung meiner Frage gesteckt hast. Echt super!

Wenn Du mit denen klarkommst, müssten wir doch nichts ändern. Dafür benötigst Du auch keinen Cronjob, die Rechte sind doch schon so .

Sie bleiebn aber nicht so. Die "Standardrechte" regelmäßig wieder herzustellen würde reichen, da für jede neue, in iPhoto über einen Alias der iPhoto-Bibliothek eingefügte Datei das Schreibrecht für Group und Alle abgeschaltet wird.

Verstehe ich das richtig, das ich mit den folgenden Zeilen einen Cronjob für den normalen Shared-Ordner anlege, der für die Gruppe wheel ständig wieder die Standardrechte Lesen, Schreiben, Ausführen herstellt?

Code:
sudo echo -e "*\t*/4\t*\t*\t*\troot \
/bin/chgrp -R wheel /Users/Shared \
&& /bin/chmod -R g=rwx /Users/Shared" \
>> /etc/crontab

Was noch fehlt, ist es den Besitzer der Datei auf System umzustellen und für alle anderen auch Schreib und Leserechte herzustellen. Wie kritisch ist es, den Intervall weiter zu drücken, z.B. auf 5-minütlich?
 
Zuletzt bearbeitet:
Zurück
Oben Unten