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 chmod
Berechtigungen, 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.
quelle
774
Berechtigungen.Antworten:
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-x
oder 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 demumask
Befehl festlegen, der den Bitwert angibt, der aus den Dateiberechtigungen entfernt werden soll. Entfernt beispielsweiseumask 022
die 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
usermod
Befehl ändern :Dieser Befehl setzt die UID
dale
auf 501. Es gibt jedoch einige wichtige Einschränkungen:usermod
muss verwendet werden alsroot
. Sie können es über ausführensudo
, dies ist jedoch im Extremfall nicht ratsam. Daher müssen Sie entwederroot
ein Passwort eingeben und sichroot
direkt anmelden odersudo
von einem zweiten Benutzerkonto aus verwenden.usermod
Befehl ä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 ändernchown
. Die meisten Dateien befinden sich im Home-Verzeichnis des Benutzers.chown -R dale: /home/dale
Wenn Sie also wieroot
nach dem Änderndale
der UID eingegeben haben , werden die meistendale
Dateien so geändert , dass die neue UID-Nummer verwendet wird. Einige der Benutzerdateien befinden sich jedoch möglicherweise an einer anderen Stelle. Bei der Eingabefind / -uid 1000
werden alle Dateien gefunden, die die alte UID verwenden (vorausgesetzt, es war 1000). Beachten Sie, dass dieserfind
Befehl 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./etc/fstab
Eintrag bereitstellen, müssen Sie möglicherweise den angegebenen UID-Wert anpassen./etc/login.defs
. Wenn Sie denUID_MIN
Wert 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_MIN
Linux 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:
quelle
UID_MIN
.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!)
quelle
774
.Öffnen Sie ein Terminal und:
Versuchen Sie dies unter OS X.
Führen Sie dies in Ubuntu aus
Jetzt sollten Sie in der Lage sein, Dateiberechtigungen zu verwenden
774
oder sogar770
zu verwenden.quelle
<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?adduser
nicht beendet.