Berechtigungen für neue Dateien im freigegebenen Verzeichnis

31

Wir haben gerade einen neuen iMac erhalten, der das /Users/SharedVerzeichnis zum Speichern von Medienobjekten (Bilder, Audio, Video) verwendet, die für alle Benutzer auf dem Computer zugänglich sein sollen. Nach dem anfänglichen Kopieren aller Dateien haben wir die gewünschten Berechtigungen festgelegt und dann rekursiv dieselben Berechtigungen auf alle Verzeichnisinhalte angewendet. Dies funktioniert einwandfrei, außer wenn jemand eine neue Datei oder ein neues Verzeichnis erstellt, verfügt es nicht über dieselben Berechtigungen und wir müssen den gesamten Berechtigungsprozess wiederholen, bevor jeder darauf zugreifen kann.

Gibt es eine Möglichkeit, Berechtigungen für alle neuen Dateien / Verzeichnisse festzulegen, die in diesem Verzeichnis erstellt wurden?

Daniel Standage
quelle
Mit den erweiterten Attributen können Sie einige sehr großzügige Zugriffsberechtigungen festlegen und sie anweisen, sich innerhalb des Verzeichnisses zu verbreiten und dies auch weiterhin bei neuen Kreationen zu tun. Für mein Leben kann ich jedoch keine Anweisungen finden. Ich kann es nur auf OSX-Servern mit den Server-Admin-Tools tun. Ich gehe davon aus, dass dies hier keine praktikable Option ist.
Jason Salaz
Nee. Wir haben nur Zugriff auf die mit dem iMac gelieferten Betriebssystem-Disks.
Daniel Standage
1
Wenn Sie mit der Arbeit im Terminal zufrieden sind, ist dies möglicherweise die Antwort, nach der Sie suchen.
Boehj

Antworten:

32

Dies ist mit herkömmlichen POSIX-Berechtigungen nicht möglich, aber mit vererbbaren Zugriffssteuerungseinträgen. Um der gesamten "Mitarbeitergruppe" Lese- und Schreibzugriff auf alles in / Users / Shared / reallyshared zu gewähren, würden Sie Folgendes verwenden:

sudo chmod -R +a "staff allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/Shared/reallyshared

Der file_inherit,directory_inheritTeil bedeutet , dass dieser Zugriffssteuerungseintrag wird automatisch neue Dateien und Ordner in diesem Ordner erstellt hinzugefügt werden, aber es gilt nicht automatisch auf Posten schon da (Deshalb hat ich die zusätzliche -RFlagge chmod- , dass es für alles gilt zur Zeit in der Ordner), und es wird nicht auf Elemente angewendet, die an einer anderen Stelle erstellt und dann in diesen Ordner verschoben wurden (ich kenne keinen Weg, dies zu umgehen, sorry).

Gordon Davisson
quelle
Ich würde wirklich gerne eine Möglichkeit finden, diese Funktion auch für Dateien zu nutzen, die in ein freigegebenes Verzeichnis verschoben werden. Es ist frustrierend, Dateien in einem freigegebenen Verzeichnis zu haben, die letztendlich nicht vollständig freigegeben werden.
Radven
Das Schreiben in einen Ordner ist weiterhin nicht möglich, wenn die Posix-Berechtigungen dies nicht zulassen. Dh ich erstelle diesen Ordner im Finder: drwxr-xr-x+ 2 User staff 68 Dec 15 14:10 untitled folderDas + am Ende bedeutet, dass die erweiterte ACL mit Ihrem obigen Befehl angewendet wurde, aber Windows sagt immer noch, dass die Berechtigung verweigert wurde, wenn ich versuche, eine Datei in diesen Ordner zu schreiben. Nur chmod g+w untitled\ folderlässt mich zu schreiben. Könnte daran liegen, dass ich Samba installiert habe, um die schreckliche neue SMB-Implementierung von OSX zu umgehen.
Chris Dragon
@ ChrisDragon: das klingt so, als würde Samba die ACL nicht richtig respektieren. Ich habe hier einen Vorschlag gefunden , nt acl support = noder dem [Global]Abschnitt /etc/smb.conf hinzugefügt werden soll, bin mir aber nicht sicher, ob dies in aktuellen Versionen von Samba noch relevant ist.
Gordon Davisson
4

Ein anderer Ansatz ist die Verwendung von Terminal (auch als Shell oder Eingabeaufforderung bezeichnet) zum Erstellen / Bearbeiten der Datei (muss als Superuser ausgeführt werden, siehe sudo):
/etc/launchd-user.conf
Hinzufügen der Zeile:
umask 000
Speichern und Neustarten. Neue Dateien / Ordner (einschließlich Dateien, die durch Speichern unter geändert wurden) ermöglichen jedem das Lesen / Schreiben.

Dies funktioniert durch Ändern der Standardberechtigungen zum Erstellen von Dateien für Programme, während der ACL-Ansatz in Bezug auf Zugriffsregeln funktioniert, die an bestimmte Dateien und Ordner gebunden sind.

Ohne diese Optimierung werden Dateien erstellt, die dem Benutzer Lese- / Schreibzugriff, Gruppen- und anderen Lesezugriff ermöglichen.

Wenn Sie die Freigabe auf mehreren Computern durchführen, müssen Sie dies für alle Computer tun, die die Freigabe verwenden.

Wenn sich im freigegebenen Bereich bereits Dateien und Ordner befinden, müssen Sie diese für alle lesbar / beschreibbar machen, indem Sie Folgendes verwenden:
sudo chmod -R og+w <shared-folder-name>

Der Befehl liest in Englisch als Änderungsmodus, rekursiv durch alle Unterordner und Dateien, andere & Gruppenberechtigungen fügen Schreibzugriff hinzu, beginnend bei Ordner mit.

Dieser Ansatz wird in Foren erwähnt, um mit mindestens 10.6 zu arbeiten und funktioniert immer noch auf 10.7.

Andere Faktoren beeinflussen weiterhin den Zugriff auf Inhalte. Beispielsweise Berechtigungen, die in der Systemsteuerung für die Freigabe festgelegt wurden, Benutzerordnerberechtigungen / ACLs und bei Verwendung von Terminal alle für die Shell gültigen umask.

Suchen Sie nach umask- und Posix-DateiberechtigungenEinzelheiten zu diesen Unix-Konzepten. In den Zuschreibungen ist das Wortverzeichnis Unix synonym mit Ordner. Sie werden auch auf die Begriffe UID und GID stoßen: Benutzer- und Gruppen-IDs, die den Posix-Besitz von laufenden Programmen (Prozessen) definieren. Beachten Sie, dass UIDs und GIDs Zahlen sind, die für einen bestimmten Benutzernamen auf verschiedenen Computern gleich oder unterschiedlich sein können. Diese Nummern werden Namen in der Reihenfolge zugewiesen, in der Konten auf einem bestimmten Computer erstellt werden, normalerweise beginnend mit der ID 501. In Heimnetzwerken fehlt ein Mechanismus zur Harmonisierung dieser Zuweisungen zwischen Computern. Daher scheint eine Datei auf Netzwerkfreigaben verschiedenen Benutzern zu gehören, da die Benutzer-ID für die Bindung des Benutzernamens aus der Perspektive bestimmt wird, in der der Computer auf die Datei zugreift. Freigaben ermöglichen es also wirklich immer jedem, auf Dateien in unterschiedlichem Maße zuzugreifen. Mit anderen Worten, die Posix-Berechtigung "Andere" ist eine unbegrenzte Zugriffsbeschränkung, die von der Ermöglichung eines durchaus vorhersehbaren, aber anscheinend unsicheren Zugriffsgrades abhängig von den auf verschiedenen Computern zugewiesenen Benutzer-IDs reicht. Dies führt zu scheinbar absurden Unterschieden bei den Erfahrungen, bei denen in einigen Netzwerken, z. B. bei einem Setup mit nur einem Benutzerkonto, das jemals auf jedem Mac erstellt wurde, Änderungen ohne Berechtigung vorgenommen werden können, da alle Konten dieselbe UID (501, Nr Unabhängig davon, wie die Konten benannt sind), bei einem anderen Netzwerk, das mehrere Benutzerkonten pro Mac verwendet, treten sofort Probleme auf. Einige Gruppen werden sich also nie damit abfinden, während andere Probleme sehen, die sich im Laufe der Zeit entwickeln, oder Probleme, die spontan auftreten / verschwinden.

Es ist ein Rätsel, warum Apple bei der Konfiguration einer ansonsten einfach zu aktivierenden Dateifreigabefunktion einen so schwerwiegenden Usability-Mangel festgestellt hat.

Auf externen Datenträgern wird dieses Problem mit der Option "Berechtigungen für dieses Volume ignorieren" behoben. Möglicherweise gibt es eine ähnliche Funktion für die gemeinsame Nutzung von Apple-Dateien, aber wo ist sie?

Wenn Sie eine eigene Samba-Service-Konfiguration haben, gibt es andere Mechanismen, um diese Probleme zu lösen, aber Samba ist überhaupt nicht einfach zu bedienen.

Draht
quelle
/etc/launchd-user.conf wird nicht mehr empfohlen launchctl. Siehe support.apple.com/de-de/HT201684
Jess Bowers,