web-dev-qa-db-fra.com

Comment monter un lecteur HFS + et ignorer les autorisations

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) en tant que root. De plus, parce que je veux parfois allumer ma machine sous OSX, je ne veux rien changer de ce que je devrais changer fréquemment (je lis beaucoup sur la modification de l'UID - je ne comprends pas exactement ce que cela implique, mais je ne voudrais pas avoir à changer mon UID d'avant en arrière en fonction du système d'exploitation que j'utilise (de même, je ne veux pas modifier les autorisations du système de fichiers).

En outre, j'ai vu quelque chose à propos d'une option "non-propriétaire", mais cela ne semble pas faire ce que je veux.

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

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

Et ensuite, être capable d'accéder à tous mes médias (au moins à tout ce qui se trouve dans le dossier de départ de mon utilisateur OSX) sans passer en tant que root. (pour plus de clarté: la ligne de commande ci-dessus ne fait pas ce que je veux, mais je veux pouvoir faire quelque chose de similaire).

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

25
weberc2

Je n'ai pas pu comprendre comment ignorer les autorisations, mais j'ai fini par modifier 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 qu '"autre" avec le nom d'utilisateur "tempuser" et le mot de passe que vous avez choisi précédemment. Ouvrez un terminal et tapez:

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

* changez "yourusername" en votre nom d'utilisateur non temporaire et 501 en 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 d’utilisateur, vous risquez de vous tromper). Ouvrez une fenêtre de terminal et tapez:

Sudo userdel -r tempuser

Pour plus de détails, visitez cette page .

Mises en garde

  • Seul un utilisateur de Linux peut y accéder. Cette configuration ne permettra pas à plusieurs utilisateurs de 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 de supports tels que Music) à 700 (rwx------).
  • Une fois que vous avez modifié votre UID, le gestionnaire de connexion cesse de répertorier cet utilisateur. Vous devez modifier l'option UID_MIN dans /etc/login.def de 1000 à 500.
  • Enfin, étant donné que l'UID de l'utilisateur a changé, l'accès au lecteur devient une confusion en matière d'autorisations. Vous devrez noter l'emplacement exact du dossier de départ de votre utilisateur pour le visualiser. L'achèvement des onglets et la navigation dans le gestionnaire de fichiers poseront problème aux dossiers situés en dehors du dossier d'origine de l'utilisateur Apple sans Sudoname__.
19
weberc2

bindfs est la réponse. Il utilisera un système de fichiers déjà monté et en donnera une vue avec l’instrument de votre choix:

Sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
Sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
28
Catskul

Le documentation de l’implémentation du système de fichiers HFS + dans le noyau Linux répertorie une option de montage uid qui vous permet de "posséder" tous les fichiers (et peut-être d’autres options qui pourraient être utiles également).

5
JanC

Je sais que c'est vieux, mais il y a une autre solution qui semble bien fonctionner pour moi. Étant donné que tous les fichiers appartenaient à un utilisateur "root", je n’ai fait qu’émettre su root à partir du terminal et ls -lah /media/Macintosh HD à partir de là. En utilisant root, j'ai pu contourner l'erreur d'autorisation refusée.

2
user236192

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

gksudo thunar

Puis copiez les fichiers si nécessaire.

1
John

C'est l'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
0
rmil