Comment monter le lecteur HFS + et ignorer les autorisations

25

J'ai installé Ubuntu et Windows sur mon MacBook et Ubuntu est mon système d'exploitation principal; cependant, tous mes médias restent sur ma partition OSX. Je veux pouvoir y accéder (au moins le dossier de départ de mon utilisateur OSX) depuis Ubuntu sans avoir à lancer un lecteur multimédia (ou autre chose) en tant que root. De plus, comme je veux parfois allumer ma machine sous OSX, je ne veux pas changer quoi que ce soit que je devrais changer fréquemment (je lis beaucoup sur le changement d'UID - je ne comprends pas exactement ce que cela implique, mais je ne voudrais pas avoir à changer mon UID d'avant en arrière selon le système d'exploitation que j'utilise. De même, je ne veux pas changer les autorisations du système de fichiers d'avant en arrière).

De plus, j'ai vu quelque chose à propos d'une option "sans propriétaire", mais cela ne semble pas faire ce que je veux.

Je suppose donc que j'aimerais pouvoir faire quelque chose comme ça:

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

Et puis être en mesure d'accéder à tous mes médias (au moins tout dans le dossier d'accueil de mon utilisateur OSX) sans passer en tant que root. (pour plus de clarté: l'entrée de ligne de commande ci-dessus ne fait pas ce que je veux qu'elle fasse, mais je veux pouvoir faire quelque chose de similaire).

Ou serait-il préférable de changer mon UID? Et si oui, comment?

weberc2
la source
Pouvez-vous jeter un oeil à ma réponse. Je crois avoir répondu à votre question plus correctement que la réponse marquée.
Catskul
@Catskul Non, je ne peux pas. Cette question a plus de 2 ans - à cette époque, j'ai vendu mon MacBook et reproduire ce problème dans le but de valider votre réponse est extrêmement difficile.
weberc2

Réponses:

28

bindfsEst la réponse. Il prendra un système de fichiers déjà monté et fournira une vue de celui-ci avec l'uid que vous souhaitez:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
Catskul
la source
La charge sur le processeur et la mémoire est cependant assez importante. Si c'est un problème, je recommanderais la solution de @ weberc2. Sinon, excellente réponse.
2014
bindfs a été floconneux pour moi. j'ai utilisé la réponse pour ce post askubuntu.com/questions/315078/… à la place
krumpelstiltskin
Bonne réponse (vote positif) mais nécessite l'installation de bindfs. Pourquoi ce n'est pas si bon? Eh bien, c'est mon cas inhabituel: un ami me donne un ancien MacBook (je ne sais pas si Pro) pour sauvegarder les données de MacOS ne démarrant pas. J'essaie la dernière version d'Ubuntu et pas de chance (nouveau crash du pilote, nomodeset n'aide pas). Ensuite, je commence à revenir avec les versions d'Ubuntu jusqu'à ce que j'en trouve une qui démarre, 9.10 (ouais), les serveurs repo ne sont plus en ligne. bindfs ne peut pas être installé. La réponse acceptée résout ce problème.
Hatoru Hansou
19

Je n'ai pas pu comprendre comment ignorer les autorisations, mais j'ai fini par changer l'UID de mon compte Ubuntu pour qu'il corresponde à mon compte OSX:

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

Entrez un nouveau mot de passe. Déconnectez-vous, connectez-vous en tant que "autre" avec le nom d'utilisateur "tempuser" et le mot de passe que vous avez choisi plus tôt. Ouvrez un terminal et saisissez:

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

* remplacez "votre nom d'utilisateur" par votre nom d'utilisateur non temporaire et 501 par l'UID de votre compte Mac (le premier compte Mac commence à 501, mais les utilisateurs suivants auront des UID différents).

Déconnectez-vous de tempuser et reconnectez-vous à votre compte normal (c'est important; ne changez pas simplement d'utilisateurs - de mauvaises choses se produisent). Ouvrez une fenêtre de terminal et saisissez:

sudo userdel -r tempuser

Pour plus de détails, visitez cette page .

Avertissements

  • Un seul utilisateur Linux peut y accéder. Cette configuration ne permettra pas à plusieurs utilisateurs Linux d'accéder à plusieurs répertoires d'utilisateurs sur le lecteur HFS +. En effet, Apple verrouille les répertoires utilisateur (et les répertoires multimédias comme Music) à 700 ( rwx------).
  • Une fois que vous avez modifié votre UID, le gestionnaire de connexion cessera de répertorier cet utilisateur. Vous devez changer l' UID_MINoption /etc/login.defde 1000à 500.
  • Enfin parce que l'UID de l'utilisateur a changé, l'accès au lecteur devient une confusion d'autorisations. Vous devrez noter l'emplacement exact du dossier de départ de votre utilisateur pour le visualiser. La complétion des onglets et la navigation dans le gestionnaire de fichiers deviendront problématiques pour les dossiers situés en dehors du dossier de départ de l'utilisateur Apple d'origine sudo.
weberc2
la source
l'approche usermod a fonctionné pour moi. assurez-vous simplement de supprimer / media / USERNAME si vous souhaitez utiliser des clés USB. askubuntu.com/questions/583375/…
krumpelstiltskin
Pour votre mise en garde 1, 700 est en effet la valeur par défaut pour les répertoires utilisateur sous OS X, mais il n'y a aucun problème à le changer s'il ne vous convient pas, par exemple à 755.
fkraiem
Tout en utilisant sudo pour émettre des commandes et lancer nautilus avec sudo permet d'accéder à n'importe quel répertoire du MacOS HD, la méthode uid est la meilleure lorsque vous avez besoin de plus que simplement accéder aux fichiers, par exemple les transférer vers un dossier partagé sur une autre machine (en utilisant samba, par exemple). L'instance nautilus élevée ne peut pas explorer le réseau, une instance nautilus normale le peut, mais elle ne vous permet pas de copier et coller à partir de MacOS HD. Donner à un utilisateur temporaire l'uid 501 a résolu le problème pour moi, me permettant de sauvegarder les données d'un MacOS ne démarrant pas dans un dossier partagé.
Hatoru Hansou
Pour 16.10, sauf UID_MIN, vous devez également ajouter GID_MIN=500à/etc/login.def
tirage le
5

La documentation de l'implémentation du noyau linux du système de fichiers HFS + répertorie une uidoption de montage qui vous permet de "posséder" tous les fichiers (et peut-être d'autres options qui pourraient également être utiles).

JanC
la source
J'ai essayé de le faire, mais je ne sais pas quel UID je devrais utiliser. J'ai lu que c'était quelque chose comme 501 pour OSX, mais le compte n'est pas l'utilisateur OSX d'origine. Comment puis-je trouver ces informations?
weberc2
@ weberc2: ls -l /media/YourHFSdisk/vous montrera l'uid et le gid des fichiers / dossiers actuels. Les disques HFS + que je rencontre semblent appartenir principalement à uid 99 et gid 99. Cependant, j'ai essayé diverses combinaisons de paramètres uid / gid / umask dans la commande mount, et cela ne semble rien changer.
mivk
Cela n'a pas fonctionné pour moi. Dans la documentation: "uid / gid \ nSpécifie l'utilisateur / groupe qui possède tous les fichiers du système de fichiers qui ont des structures d'autorisations non initialisées." Malheureusement, tous les fichiers de mon système de fichiers appartiennent toujours à 501 (c'est-à-dire qu'ils ont des structures d'autorisations initialisées (?))
Colin
2

Je sais que c'est vieux, mais il y a un autre moyen de le contourner qui semble très bien fonctionner pour moi. Comme tous les fichiers appartenaient à un utilisateur "root", je n'ai fait que sortir su rootdu terminal et ls -lah /media/Macintosh HDde là. En utilisant root, j'ai pu contourner l'erreur d'autorisation refusée.

user236192
la source
simple et sournois
SYK
1

J'ai pu accéder aux fichiers à partir d'un ancien disque dur Macbook en exécutant le gestionnaire de fichiers avec des privilèges élevés.

gksudo thunar

Copiez ensuite les fichiers selon vos besoins.

John
la source
0

C'est une option générale que j'utilise fonctionne parfaitement

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
rmil
la source