Bereitstellen von HFS + -Laufwerken und Ignorieren von Berechtigungen

25

Ich habe Ubuntu und Windows auf meinem MacBook installiert und Ubuntu ist mein primäres Betriebssystem. Alle meine Medien verbleiben jedoch auf meiner OSX-Partition. Ich möchte von Ubuntu aus darauf zugreifen können (zumindest auf den Home-Ordner meines OSX-Benutzers), ohne einen Media Player (oder etwas anderes) als root starten zu müssen. Da ich gelegentlich meinen Computer in OSX starten möchte, möchte ich nichts ändern, was ich häufig zurückändern müsste. Ich möchte jedoch nicht, dass meine UID je nach verwendetem Betriebssystem hin und her wechselt. Ebenso möchte ich die Dateisystemberechtigungen nicht hin und her ändern.

Ich habe auch etwas über eine "noowner" -Option gesehen, aber das scheint nicht das zu tun, was ich will.

Also würde ich gerne in der Lage sein, so etwas zu tun:

sudo mount -t hfsplus -o noowner /dev/sda2/ /media/Mac

Und dann in der Lage zu sein, auf alle meine Medien zuzugreifen (zumindest auf alle im Home-Ordner meines OSX-Benutzers), ohne sich als Root anzumelden. (Der Klarheit halber: Der obige Befehlszeileneintrag macht nicht das, was ich will, aber ich möchte in der Lage sein, etwas Ähnliches zu tun.)

Oder wäre es besser, meine UID zu ändern? Und wenn ja, wie?

weberc2
quelle
Kannst du dir meine Antwort ansehen? Ich glaube, ich habe Ihre Frage korrekter beantwortet als die markierte Antwort.
Catskul
@Catskul Nein, ich kann nicht. Diese Frage ist über 2 Jahre alt - in dieser Zeit habe ich mein MacBook verkauft und die Reproduktion dieses Problems zum Zweck der Validierung Ihrer Antwort ist unerschwinglich schwierig.
weberc2

Antworten:

28

bindfsist die Antwort. Es wird ein bereits eingehängtes Dateisystem verwendet und eine Ansicht davon mit der gewünschten UID bereitgestellt:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
Catskul
quelle
Die Belastung der CPU und des Speichers ist jedoch beträchtlich. Wenn das ein Problem ist, würde ich die Lösung von @ weberc2 empfehlen. Ansonsten tolle Antwort.
Fr.
bindfs war für mich schuppig. Ich habe die Antwort für diesen Beitrag verwendet askubuntu.com/questions/315078/… stattdessen
krumpelstiltskin
Gute Antwort (upvoted), aber es muss bindfs installiert werden. Warum ist das nicht so gut? Nun, das ist mein ungewöhnlicher Fall: Freund gibt mir altes MacBook (ich weiß nicht, ob Pro), um Daten von nicht bootendem MacOS zu sichern. Ich probiere die neueste Ubuntu-Version aus und habe kein Glück (Nouveau-Treiber stürzt ab, Nomodeset hilft nicht). Dann gehe ich zurück mit Ubuntu-Versionen, bis ich eine finde, die bootet, 9.10 (yeah), Repo-Server sind nicht mehr online. bindfs kann nicht installiert werden. Die akzeptierte Antwort löst dieses Problem.
Hatoru Hansou
19

Ich konnte nicht herausfinden, wie ich die Berechtigungen ignorieren kann, aber ich habe die UID meines Ubuntu-Kontos so geändert, dass sie mit meinem OSX-Konto übereinstimmt:

sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser
sudo passwd tempuser

Neues Passwort eingeben. Melden Sie sich ab, melden Sie sich als "other" mit dem Benutzernamen "tempuser" und dem zuvor gewählten Passwort an. Öffnen Sie ein Terminal und geben Sie Folgendes ein:

sudo usermod --uid 501 yourusername
sudo chown -R 501:yourusername /home/yourusername

* Ändern Sie "Ihr Benutzername" in Ihren nicht temporären Benutzernamen und 501 in die UID Ihres Mac-Kontos (das erste Mac-Konto beginnt bei 501, nachfolgende Benutzer haben jedoch andere UIDs).

Melden Sie sich von Tempuser ab und wieder in Ihrem normalen Konto (dies ist wichtig; wechseln Sie nicht nur die Benutzer - es passieren schlimme Dinge). Öffnen Sie ein Terminalfenster und geben Sie Folgendes ein:

sudo userdel -r tempuser

Weitere Informationen finden Sie auf dieser Seite .

Vorbehalte

  • Nur ein Linux-Benutzer kann Zugriff erhalten. Mit diesem Setup können nicht mehrere Linux-Benutzer auf mehrere Benutzerverzeichnisse auf dem HFS + -Laufwerk zugreifen. Dies liegt daran, dass Apple Benutzerverzeichnisse (und Medienverzeichnisse wie Musik) auf 700 ( rwx------) sperrt .
  • Sobald Sie Ihre UID ändern, beendet der Anmeldemanager die Auflistung dieses Benutzers. Sie müssen die UID_MINOption in /etc/login.defvon 1000in ändern 500.
  • Da sich die Benutzer-UID geändert hat, führt der Zugriff auf das Laufwerk zu einer Verwechslung der Berechtigungen. Sie müssen den genauen Speicherort des Benutzerordners notieren, um ihn anzuzeigen. Das Vervollständigen von Registerkarten und das Durchsuchen des Dateimanagers wird problematisch für Ordner außerhalb des Basisordners des ursprünglichen Apple-Benutzers ohne sudo.
weberc2
quelle
Der Usermod-Ansatz hat bei mir funktioniert. Stellen Sie einfach sicher, dass Sie / media / USERNAME entfernen, wenn Sie USB-Laufwerke verwenden möchten. askubuntu.com/questions/583375/…
krumpelstiltskin
Für Ihre Einschränkung 1 ist 700 in der Tat die Standardeinstellung für Benutzerverzeichnisse in OS X, aber es ist kein Problem, es zu ändern, wenn es nicht zu Ihnen passt, zum Beispiel zu 755.
fkraiem
Wenn Sie sudo zum Ausgeben von Befehlen und zum Starten von nautilus mit sudo verwenden, können Sie auf jedes Verzeichnis in MacOS HD zugreifen. Die uid-Methode eignet sich jedoch am besten, wenn Sie nicht nur auf die Dateien zugreifen möchten, sondern sie beispielsweise in einen freigegebenen Ordner auf einem anderen Computer übertragen möchten (mit Samba zum Beispiel). Die Instanz von Nautilus mit erhöhten Rechten kann das Netzwerk nicht durchsuchen, eine normale Nautilus-Instanz kann dies, aber Sie können nicht von MacOS HD kopieren und einfügen. Geben Sie einem Tempuser die UID 501, die das Problem für mich gelöst hat und es mir ermöglicht, Daten von einem nicht bootenden MacOS in einen freigegebenen Ordner zu sichern.
Hatoru Hansou
Für 16.10, außer UID_MIN, müssen auch hinzufügen GID_MIN=500zu/etc/login.def
ziehen
5

In der Dokumentation zur Linux-Kernel-Implementierung des HFS + -Dateisystems ist eine uidMount-Option aufgeführt, mit der Sie alle Dateien "besitzen" können (und möglicherweise auch einige andere Optionen, die nützlich sein könnten).

JanC
quelle
Ich habe versucht, das zu tun, aber ich weiß nicht, welche UID ich verwenden soll. Ich habe gelesen, es ist so etwas wie 501 für OSX, aber das Konto ist nicht der ursprüngliche OSX-Benutzer. Wie kann ich diese Informationen herausfinden?
weberc2
@ weberc2: Zeigt ls -l /media/YourHFSdisk/die UID und GID der aktuellen Dateien / Ordner an. Die HFS + -Datenträger, auf die ich stoße, scheinen größtenteils im Besitz von UID 99 und GID 99 zu sein. Ich habe jedoch verschiedene Kombinationen von UID / GID / UMASK-Einstellungen im Befehl mount ausprobiert, und es schien nichts zu ändern.
Mivk
Das hat bei mir nicht geklappt. In der Dokumentation: "uid / gid \ nGibt den Benutzer / die Gruppe an, der / die alle Dateien im Dateisystem besitzt, die nicht initialisierte Berechtigungsstrukturen haben." Leider sind alle Dateien in meinem Dateisystem noch Eigentum von 501 (dh sie haben Berechtigungsstrukturen initialisiert (?))
Colin
2

Ich weiß, dass dies alt ist, aber es gibt einen anderen Weg, der für mich ganz gut zu funktionieren scheint. Da sich alle Dateien im Besitz eines "Root" -Benutzers befanden, war alles, was ich tat, die Ausgabe su rootvom Terminal und ls -lah /media/Macintosh HDvon dort. Mit root konnte ich den Fehler "Berechtigung verweigert" umgehen.

user236192
quelle
einfach und
hinterhältig
1

Ich konnte auf Dateien von einer alten Macbook-Festplatte zugreifen, indem ich den Dateimanager mit erhöhten Rechten ausführte.

gksudo thunar

Kopieren Sie dann die Dateien nach Bedarf.

John
quelle
0

Dies ist die allgemeine Option, die ich benutze, funktioniert einwandfrei

mkdir /media/test
mkdir /media/diskhfs
mount /dev/sdb1 /media/test -o rw
bindfs -o perms=775,mirror=userorid --map=99/userorid:@99/@uderorid /media/test /media/diskhfs
Mil
quelle