Cómo montar la unidad HFS + e ignorar los permisos

25

Instalé Ubuntu y Windows en mi MacBook y Ubuntu es mi sistema operativo principal; sin embargo, todos mis medios permanecen en mi partición OSX. Quiero poder acceder a él (al menos la carpeta de inicio de mi usuario OSX) desde Ubuntu sin tener que iniciar un reproductor multimedia (o cualquier otra cosa) como root. Además, debido a que ocasionalmente quiero encender mi máquina en OSX, no quiero cambiar nada que necesite cambiar con frecuencia (leo mucho sobre cómo cambiar el UID; no entiendo exactamente qué implica esto, pero no quisiera tener que cambiar mi UID de un lado a otro dependiendo del sistema operativo que esté usando. Del mismo modo, no quiero cambiar los permisos del sistema de archivos de un lado a otro).

Además, vi algo sobre una opción de "noowner", pero eso no parece hacer lo que quiero que haga.

Así que supongo que me gustaría poder hacer algo como esto:

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

Y luego poder acceder a todos mis medios (al menos todo en la carpeta de inicio de mi usuario OSX) sin caer como root. (para mayor claridad: la entrada de la línea de comandos anterior no hace lo que quiero que haga, pero quiero poder hacer algo similar).

¿O sería mejor cambiar mi UID? Y si es así, ¿cómo?

weberc2
fuente
¿Puedes echar un vistazo a mi respuesta? Creo que he respondido su pregunta más correctamente que la respuesta marcada.
Catskul
@ Catkul No, no puedo. Esta pregunta tiene más de 2 años; en ese momento, vendí mi MacBook y reproducir este problema con el propósito de validar su respuesta es prohibitivamente difícil.
weberc2

Respuestas:

28

bindfses la respuesta. Tomará un sistema de archivos ya montado y le proporcionará una vista con el uid que desee:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
Catskul
fuente
Sin embargo, la carga en la CPU y la memoria es bastante considerable. Si eso es una preocupación, recomendaría la solución de @ weberc2. De lo contrario, gran respuesta.
Viernes
bindfs ha sido escamoso para mí. i utiliza la respuesta para este post askubuntu.com/questions/315078/... lugar
krumpelstiltskin
Buena respuesta (upvoted) pero requiere instalar bindfs. ¿Por qué eso no es tan bueno? Bueno, este es mi caso inusual: un amigo me da una MacBook vieja (no sé si es Pro) para hacer una copia de seguridad de los datos de MacOS sin arranque. Intento la última versión de Ubuntu y no tengo suerte (el controlador nouveau falla, nomodeset no ayuda). Luego empiezo a volver con las versiones de Ubuntu hasta que encuentro una que arranca, 9.10 (sí), los servidores de repos ya no están en línea. bindfs no se puede instalar. La respuesta aceptada resuelve ese problema.
Hatoru Hansou
19

No pude descubrir cómo ignorar los permisos, pero terminé cambiando el UID en mi cuenta de Ubuntu para que coincida con mi cuenta OSX:

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

Introduzca nueva contraseña. Cierre la sesión, inicie sesión como "otro" con el nombre de usuario "tempuser" y la contraseña que eligió anteriormente. Abra una terminal y escriba:

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

* cambie "su nombre de usuario" a su nombre de usuario no temporal y 501 al UID de su cuenta de Mac (la primera cuenta de Mac comienza en 501, pero los usuarios posteriores tendrán diferentes UID).

Cierre sesión en tempuser y vuelva a iniciar sesión en su cuenta normal (esto es importante; no solo cambie de usuario: suceden cosas malas) Abra una ventana de terminal y escriba:

sudo userdel -r tempuser

Para más detalles, visite esta página .

Advertencias

  • Solo un usuario de Linux puede obtener acceso. Esta configuración no permitirá que múltiples usuarios de Linux accedan a múltiples directorios de usuarios en la unidad HFS +. Esto se debe a que Apple bloquea los directorios de usuarios (y los directorios de medios como Música) a 700 ( rwx------).
  • Una vez que cambie su UID, el administrador de inicio de sesión dejará de incluir a ese usuario. Tienes que cambiar la UID_MINopción /etc/login.defde 1000a 500.
  • Finalmente, debido a que el UID del usuario ha cambiado, el acceso a la unidad se convierte en una confusión de permisos. Tendrá que anotar la ubicación exacta de la carpeta de inicio de su usuario para verla. La finalización de pestañas y la navegación a través del administrador de archivos se volverán problemáticas para las carpetas que se encuentren fuera de la carpeta de inicio del usuario original de Apple sudo.
weberc2
fuente
El enfoque usermod funcionó para mí. solo asegúrese de eliminar / media / USERNAME si desea usar unidades USB. askubuntu.com/questions/583375/…
krumpelstiltskin
Para su advertencia 1, 700 es de hecho el valor predeterminado para los directorios de usuarios en OS X, pero no hay problema en cambiarlo si no le conviene, por ejemplo, a 755.
fkraiem
Si bien el uso de sudo para emitir comandos y ejecutar nautilus con sudo permite el acceso a cualquier directorio en MacOS HD, el método uid es el mejor cuando necesita algo más que simplemente acceder a los archivos, por ejemplo, transferirlos a una carpeta compartida en otra máquina (usando samba, por ejemplo). La instancia elevada de nautilus no puede explorar la red, una instancia normal de nautilus sí, pero no le permite copiar y pegar desde MacOS HD. Darle a un usuario temporal el uid 501 resolvió el problema por mí, permitiéndome hacer una copia de seguridad de los datos de un MacOS que no se iniciaba en una carpeta compartida.
Hatoru Hansou
Para 16.10, excepto UID_MIN, también es necesario agregar GID_MIN=500a/etc/login.def
dibujar
5

La documentación para la implementación del kernel de Linux del sistema de archivos HFS + enumera una uidopción de montaje que le permite "poseer" todos los archivos (y quizás algunas otras opciones que también podrían ser útiles).

JanC
fuente
He estado tratando de hacer eso, pero no sé qué UID debería estar usando. He leído que es algo así como 501 para OSX, pero la cuenta no es el usuario original de OSX. ¿Cómo puedo encontrar esta información?
weberc2
@ weberc2: ls -l /media/YourHFSdisk/le mostrará el uid y el gid de los archivos / carpetas actuales. Los discos HFS + con los que me encuentro parecen pertenecer principalmente a uid 99 y gid 99. Sin embargo, probé varias combinaciones de configuraciones de uid / gid / umask en el comando mount, y no pareció cambiar nada.
mivk
Esto no funcionó para mí. De la documentación: "uid / gid \ n Especifica el usuario / grupo que posee todos los archivos en el sistema de archivos que tienen estructuras de permisos sin inicializar". Desafortunadamente, todos los archivos en mi sistema de archivos todavía son propiedad de 501 (es decir, tienen estructuras de permisos inicializadas (?))
Colin
2

Sé que esto es viejo, pero hay otra forma de evitarlo que parece funcionar bien para mí. Como todos los archivos eran propiedad de un usuario "root", todo lo que hice fue emitir su rootdesde el terminal y ls -lah /media/Macintosh HDdesde allí. Al usar root, pude evitar el error de permiso denegado.

user236192
fuente
simple y tortuoso
SYK
1

Pude obtener acceso a los archivos de un disco duro antiguo de Macbook ejecutando el administrador de archivos con privilegios elevados.

gksudo thunar

Luego copie los archivos según sea necesario.

John
fuente
0

Esta es una opción general que estoy usando funciona perfectamente

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
fuente