So verwalten Sie Berechtigungen für ein freigegebenes Volume für OSX und Ubuntu

8

Auf meinem Mac verwende ich eine nicht journalisierte HFS-Partition, um Dateien zwischen OSX 10.8 und Ubuntu 12.04 freizugeben.

Anfangs war es ein schöner Gedanke, denn Time Machine sichert das Volume automatisch in OSX, aber ich bemerkte bald, dass OSX und Ubuntu mit der Erlaubnis auf eine Weise durcheinander kommen, die die Dinge für mich chaotisch macht.

Um Dateien vollständig anzuzeigen und zu ändern, verwende ich weiterhin chmodBerechtigungen, mit denen ich ein Dokument vollständig verwenden kann. Aber ich verstehe nicht , warum ich halten müssen , um Änderungen zu übernehmen immer und immer wieder .

Ist es möglich, eine Berechtigung dauerhaft festzulegen, damit beide Betriebssysteme sie dauerhaft einhalten?

Ich denke, 777 wird funktionieren, aber ich dachte, dass dies keine kluge Sache ist. Aber solange 'andere' keinen vollen Zugriff erhalten (dritte sieben), sehe ich ein Schlosssymbol in der Datei in Ubuntu.

Seth
quelle
1
Haben Sie in OS X und Ubuntu den gleichen Benutzernamen? Wenn Sie andere Benutzernamen haben, können Sie versuchen, den Ubuntu-Benutzernamen in OS X zu Ihrer Gruppe hinzuzufügen und umgekehrt . Auf diese Weise benötigen Sie nur 774Berechtigungen.
Edwin
@edwin Danke für den Tipp. Wie füge ich meiner Gruppe einen Benutzernamen hinzu? Ist die Verwendung von 777 sinnvoll oder unsicher?

Antworten:

12

Benutzernamen sind irrelevant. Berechtigungen in HFS + - und Linux-nativen Dateisystemen werden in Form von Benutzer- IDs (UIDs) gespeichert , bei denen es sich um Nummern handelt, die Benutzernamen zugeordnet sind. In Ubuntu erhält der erste Benutzer wie in den meisten modernen Linux-Distributionen standardmäßig eine UID von 1000. In OS X erhält der erste Benutzer standardmäßig eine UID von 501. Wenn Sie also Medien freigeben, die UID-Werte codieren, stimmen die UID-Werte wahrscheinlich nicht überein.

Eine Möglichkeit, dies zu beheben, besteht darin, lose Berechtigungen festzulegen (der Moduswert wie in rwxr-xr-xoder 755 in oktal). Beachten Sie, dass der Oktalcode der Berechtigungen nicht mit dem UID-Wert übereinstimmt. In beiden Betriebssystemen können Sie die Standardberechtigungen für Dateien mit dem umaskBefehl festlegen, der den Bitwert angibt, der aus den Dateiberechtigungen entfernt werden soll. Entfernt beispielsweise umask 022die Schreibberechtigung für die Gruppe und andere Berechtigungen, was zu 755 führt (rwxr-xr-x) Berechtigungen für neue Dateien (oder 644, wenn etwas das Ausführungsberechtigungsbit entfernt, was für Dateien üblich ist). Dies ist jedoch größtenteils ein Befehlszeilenprogramm. Wenn Sie größtenteils ein GUI-Benutzer sind, müssen Sie ein anderes Tool finden, um die Aufgabe zu erledigen, wahrscheinlich im Zusammenhang mit den Standardeinstellungen Ihrer Desktop-Umgebung. Dies kann dunkel und schlecht dokumentiert sein. Das Festlegen loser Berechtigungen auf diese Weise kann auch Sicherheitsnachteile haben, insbesondere wenn es sich bei Ihrem System um ein Mehrbenutzersystem handelt.

Ein besserer Ansatz besteht darin, die UIDs Ihres Kontos unter Linux und OS X zu synchronisieren. Sie können den UID-Wert unter Linux einfach mit dem folgenden usermodBefehl ändern :

usermod -u 501 dale

Dieser Befehl setzt die UID daleauf 501. Es gibt jedoch einige wichtige Einschränkungen:

  • Sie sollten sich von dem Konto abmelden, das Sie ändern, bevor Sie es ändern. Wenn Sie versuchen, ein verwendetes Konto zu ändern, verhält sich dieses Konto merkwürdig.
  • usermodmuss verwendet werden als root. Sie können es über ausführen sudo, dies ist jedoch im Extremfall nicht ratsam. Daher müssen Sie entweder rootein Passwort eingeben und sich rootdirekt anmelden oder sudovon einem zweiten Benutzerkonto aus verwenden.
  • Der usermodBefehl ändert nicht den Besitz von Dateien, die dem betreffenden Benutzer gehören. Um den Besitz dieser Dateien anzupassen, müssen Sie sie suchen und dann ihren Besitz mit ändern chown. Die meisten Dateien befinden sich im Home-Verzeichnis des Benutzers. chown -R dale: /home/daleWenn Sie also wie rootnach dem Ändern daleder UID eingegeben haben , werden die meisten daleDateien so geändert , dass die neue UID-Nummer verwendet wird. Einige der Benutzerdateien befinden sich jedoch möglicherweise an einer anderen Stelle. Bei der Eingabe find / -uid 1000werden alle Dateien gefunden, die die alte UID verwenden (vorausgesetzt, es war 1000). Beachten Sie, dass dieser findBefehl wahrscheinlich einige Minuten dauern wird. Hängen Sie zur Beschleunigung alle Dateisysteme aus, auf denen Sie sicher sind, dass keine Treffer gefunden werden, z. B. FAT- oder NTFS-Volumes.
  • Wenn Sie auf FAT- oder NTFS-Volumes zugreifen, werden deren UID-Werte zum Zeitpunkt der Bereitstellung durch Optionen bestimmt. Wenn Sie einen GUI-Dateimanager verwenden, wird der UID-Wert wahrscheinlich auf denjenigen festgelegt, der den Dateimanager ausführt. Sie müssen also nichts Besonderes tun. Wenn Sie das Volume jedoch über einen /etc/fstabEintrag bereitstellen, müssen Sie möglicherweise den angegebenen UID-Wert anpassen.
  • Ubuntu speichert den Mindestwert, den es für UIDs verwendet /etc/login.defs. Wenn Sie den UID_MINWert in dieser Datei nicht ändern , werden Sie wahrscheinlich feststellen, dass Ihr Konto auf dem GUI-Anmeldebildschirm und möglicherweise auf einigen anderen Systemen "verschwindet". Daher sollten Sie diese Datei bearbeiten.

Theoretisch können Sie die UID Ihrer OS X-Konten auf ähnliche Weise ändern, um dasselbe Ziel zu erreichen. Ich bin jedoch weniger mit den Tools zur Pflege des OS X-Kontos vertraut, daher kann ich keine expliziten Anweisungen dazu geben. Das Anpassen der OS X-Werte hätte den Vorteil, dass Sie nicht unter UID_MINLinux anpassen müssen .

Wenn Sie mehrere Konten auf Ihrem Computer haben, sollten Sie sie alle anpassen, um sie über Ihre Betriebssysteminstallationen hinweg synchron zu halten.

Noch ein Punkt: Der GID-Wert (Group ID) wird auf ähnliche Weise gespeichert. IIRC, Ubuntu weist jedem Konto einen GID-Wert zu, der mit seinem UID-Wert identisch ist. Ich kann mich nicht erinnern, was OS X standardmäßig macht. Möglicherweise möchten Sie die GID-Werte für die beiden Betriebssysteme analog zu den UID-Änderungen anpassen. Dies ist jedoch wahrscheinlich nicht so wichtig wie das Anpassen der UID-Werte.

BEARBEITEN: Wenn Sie Ihre UID (und ggf. die GID) unter macOS / OS X und nicht unter Ubuntu ändern möchten, können Sie dies tun. Da diese Änderung in macOS den Rahmen dieser Website sprengt, werde ich nur auf einige Seiten verweisen, die Verfahren dazu in macOS enthalten:

Rod Smith
quelle
Wow Danke! Dies ist eine wirklich gut geschriebene umfassende Antwort, die den vollständigen Kontext des Problems erklärt! Diese Lösung hat mir geholfen, eine fehlerfreie gemeinsame Partition zu erhalten, ohne Kompromisse einzugehen. Anfangs gab es immer noch das Problem des Dateibesitzes: "Das Ignorieren des Besitzes dieses Volumes" in OSX würde mir keinen Schreibzugriff auf neu erstellte OSX- Dateien gewähren, wenn ich unter Ubuntu (Schlosssymbol) ausgeführt werde und umgekehrt. Also habe ich in Ubuntu ein neues Konto mit demselben Benutzernamen wie in OSX eingerichtet und die UID erneut geändert.
Jetzt habe ich von beiden Betriebssystemen aus vollen Zugriff auf vorhandene und neu erstellte Dateien, ohne die Zugriffsbeschränkungen ändern zu müssen. Da dies eine beispielhafte Antwort ist, gebe ich Ihnen ein Kopfgeld, sobald die Frage für ein Kopfgeld in Frage kommt. ;-)
Nachdem ich Ihren Anweisungen gefolgt war, habe ich versucht, mich bei Ubuntu anzumelden. Als ich die Eingabetaste drückte, sah ich für eine Sekunde einen schwarzen Bildschirm und landete dann wieder im Anmeldebildschirm. Nachdem ich von meinem temporären Konto etwas auf Standard 1000 zurückgesetzt hatte, konnte ich mich erneut anmelden. Irgendeine Idee, warum ich mich nicht mit der neuen UID anmelden konnte?
Borisdiakur
Wenn Sie es versäumt haben, die Berechtigungen für Ihr eigenes Ausgangsverzeichnis zu ändern, kann dies das Problem erklären. Wenn Sie 13.10 verwenden, ist es auch denkbar, dass sich in Ubuntu etwas geändert hat, das Probleme verursacht, wenn Sie es nicht angepasst haben UID_MIN.
Rod Smith
1
UPDATE: Ich habe gerade Usermod auf meinem System gemacht und irgendwie musste die Erlaubnis meines Home-Verzeichnisses nicht geändert werden!? Alles funktioniert gut nach nur usermod (als root).
Krumpelstilzchen
0

Ich habe festgestellt, dass Sie manchmal auf einen Ordner klicken können, den Sie freigeben möchten, und Befehlstaste + I drücken können. Klicken Sie dann auf die Sperre und geben Sie Ihr Passwort ein, wenn es nicht entsperrt ist. Weiter, wo "Jeder" steht, wählen Sie Lesen und Schreiben.

Eine andere Möglichkeit besteht darin, einen Ordner als "freigegebenen Ordner" einzurichten. Dies können Sie im Bereich "Freigabeeinstellungen" in den Systemeinstellungen tun.
Gehen Sie zu Systemeinstellungen> Freigabe> Dateifreigabe. Stellen Sie dann freigeben, dass das Kontrollkästchen für die Dateifreigabe aktiviert ist, und fügen Sie den Ordner, den Sie freigeben möchten, mit der Plus-Schaltfläche hinzu. Anschließend können Sie die Berechtigungen zum Lesen und Schreiben ändern.

EIN HINWEIS: Wenn Sie die zweite Option verwenden, wird auch Ihr Computer geöffnet, um über das Internet auf den Ordner Ihrer Wahl zugreifen zu können (nur beim Booten in os x) !! Teilen Sie mit, dass Sie ein sicheres Passwort haben und dieses wahrscheinlich an öffentlichen Orten deaktivieren (vergessen Sie nicht, Ihren Alufolienhut zu holen!)

aChipmunk
quelle
Dies funktioniert in beiden Fällen, aber ich werde nur die erste Option verwenden. Es scheint jedoch zu radikal, "jedem" Zugang zu gewähren (dh Erlaubnis 777) - oder nicht? Ist das sicher?
1
Nun, es wird nicht sicher empfohlen. "Jeder" kann die Dokumente mit diesen Berechtigungen ändern und lesen (aber das ist meistens Unix-Zeug, denke ich). Es ist definitiv ein bisschen sicherer zu bedienen 774.
Edwin
0

Öffnen Sie ein Terminal und:

Versuchen Sie dies unter OS X.

sudo dscl / -create /Users/<ubuntu-username>
sudo dscl / -append /Groups/<os-x-username> GroupMembership <ubuntu-username>

Führen Sie dies in Ubuntu aus

sudo adduser --system --no-create-home --ingroup <ubuntu-username> <os-x-username>

Jetzt sollten Sie in der Lage sein, Dateiberechtigungen zu verwenden 774oder sogar 770zu verwenden.

Edwin
quelle
Das funktioniert nicht. Der OSX-Befehl funktioniert auch nicht. Aber ich habe es geschafft, den Ubuntu-Benutzer über die GUI-Oberfläche in OSX hinzuzufügen. Nach dem Hinzufügen des Benutzers des anderen Betriebssystems zum laufenden Betriebssystem und dem Ändern der Berechtigungen auf 774 in beiden Betriebssystemen kann Ubuntu immer noch nicht vollen Zugriff auf alle Dateien auf der freigegebenen Partition erhalten. Einige Unterverzeichnisse kann ich zum Beispiel nicht öffnen (Berechtigung ist 774). Also musste ich es auf 777 ändern, um es zu öffnen. Sind diese gnädigen Erlaubnis sicher?
Zumindest in Ubuntu sollte der Befehl funktionieren. Ich habe es selbst versucht, bevor ich die Antwort hinzufügte. Sind Sie sicher, dass Sie <ubuntu-username>Ihren tatsächlichen Benutzernamen in Ubuntu (idem für <os-x-usernanme>) ersetzt haben? Und können Sie genauer sagen, welche Fehler OS X beim Ausführen dieses Befehls verursacht?
Edwin
Ich habe nur gesagt, dass der Befehl unter OSX nicht funktioniert. Wenn ich mich richtig erinnere, wird der Befehl addusernicht beendet.
Ich habe die Antwort darauf bearbeitet. Versuch es. Ich bin mir nicht sicher, da ich mit der Benutzerverwaltung von OS X nicht vertraut bin. In OS X können Sie auch die GUI verwenden, um den Ubuntu-Benutzer (mit dem in Ubuntu verwendeten Benutzernamen) zu erstellen und ihn dann Ihrer tatsächlichen OS X-Benutzergruppe hinzuzufügen.
Edwin
Es spielt keine Rolle. OSX bietet eine einfache Benutzeroberfläche bei Verwendung von CMD + I, mit der Sie ganz einfach Benutzer erstellen und hinzufügen können. Aber das hat das Problem doch nicht gelöst. Am Ende habe ich 777 Berechtigungen verwendet.