Cómo administrar los permisos en un volumen compartido para OSX y ubuntu

8

En mi Mac, estoy usando una partición HFS no marcada para compartir archivos entre OSX 10.8 y Ubuntu 12.04.

Al principio fue un buen pensamiento, porque Time Machine automáticamente respaldará el volumen en OSX, pero pronto me di cuenta de que OSX y Ubuntu se meten con el permiso de una manera que me complica las cosas.

Entonces, para ver y cambiar completamente los archivos, sigo usando chmodpara aplicar permisos que me permitirán usar completamente un documento. Pero no entiendo por qué tengo que seguir aplicando cambios una y otra vez .

¿Es posible establecer algún tipo de permiso de forma permanente para que ambos sistemas operativos lo respeten permanentemente?

Supongo que 777 funcionará, pero pensé que esto no es algo inteligente. Pero mientras 'otros' no tengan acceso completo (terceros siete), veo un icono de candado en el archivo en ubuntu.

Seth
fuente
1
¿Tiene el mismo nombre de usuario en OS X y Ubuntu? Si tiene diferentes nombres de usuario, puede intentar agregar el nombre de usuario de Ubuntu a su grupo en OS X, y viceversa . De esta manera solo necesitaría 774permisos.
edwin
@edwin Gracias por el consejo. ¿Cómo agrego un nombre de usuario a mi grupo? ¿Usar 777 es razonable o inseguro?

Respuestas:

12

Los nombres de usuario son irrelevantes. Los permisos tanto en los sistemas de archivos nativos de HFS + como de Linux se almacenan en términos de ID de usuario (UID), que son números asociados con nombres de usuario. En Ubuntu, como en la mayoría de las distribuciones modernas de Linux, el primer usuario recibe un UID de 1000 por defecto. En OS X, el primer usuario recibe un UID de 501 por defecto. Por lo tanto, al compartir medios que codifican valores de UID, es probable que los valores de UID no coincidan.

Una forma de solucionar esto es estableciendo permisos sueltos (el valor del modo, como en rwxr-xr-x, o 755 en octal). Tenga en cuenta que el código octal de permisos no es el mismo que el valor UID. En cualquier sistema operativo, puede establecer los permisos predeterminados utilizados en los archivos con el umaskcomando, que especifica el valor de bit que se eliminará de los permisos de archivo. Por ejemplo, umask 022elimina el permiso de escritura para el grupo y otros permisos, lo que resulta en 755 (rwxr-xr-x) permisos en archivos nuevos (o 644 si algo elimina el bit de permiso de ejecución, que es una práctica común para los archivos). Sin embargo, esta es en gran medida una herramienta de línea de comandos; si es en gran medida un usuario de GUI, necesitará encontrar otra herramienta para hacer el trabajo, probablemente relacionada con los valores predeterminados de su entorno de escritorio. Esto puede ser oscuro y estar mal documentado. Además, establecer permisos sueltos de esta manera puede tener inconvenientes de seguridad, especialmente si el suyo es un sistema multiusuario.

Un mejor enfoque es sincronizar los UID de su cuenta en Linux y OS X. Puede cambiar fácilmente el valor de UID en Linux con el usermodcomando, como en:

usermod -u 501 dale

Este comando establece el UID para dale501. Sin embargo, hay algunas advertencias importantes:

  • Debe cerrar sesión en la cuenta que está modificando antes de modificarla. Intentar modificar una cuenta en uso hará que esa cuenta comience a comportarse de manera extraña.
  • usermoddebe usarse como root. Puede ejecutarlo a través de sudo, pero hacerlo desde la cuenta que está modificando es extremadamente desaconsejable. Por lo tanto, deberá proporcionar rootuna contraseña e iniciar sesión rootdirectamente o usarla sudodesde una segunda cuenta de usuario.
  • El usermodcomando no cambiará la propiedad de ningún archivo propiedad del usuario en cuestión. Para ajustar la propiedad de esos archivos, deberá localizarlos y luego cambiar su propiedad con chown. La mayoría de los archivos estarán en el directorio de inicio del usuario, por lo que chown -R dale: /home/dale, escrita rootdespués de cambiar daleel UID, cambiará la mayoría de dalelos archivos para usar el nuevo número de UID. Sin embargo, algunos de los archivos del usuario pueden estar ubicados en otro lugar. Al escribir find / -uid 1000encontrará todos los archivos que usan el UID anterior (suponiendo que fuera 1000). Tenga en cuenta que este findcomando probablemente tardará varios minutos en completarse. Para acelerarlo, desmonte cualquier sistema de archivos en el que esté seguro de que no encontrará resultados, como los volúmenes FAT o NTFS.
  • Si accede a volúmenes FAT o NTFS, sus valores de UID están determinados por las opciones en el momento del montaje. Si usa un administrador de archivos GUI, lo más probable es que el valor de UID esté establecido para quien ejecuta el administrador de archivos, por lo que no necesita hacer nada especial. Sin embargo, si monta el volumen a través de una /etc/fstabentrada, es posible que deba ajustar el valor de UID que especifica.
  • Ubuntu almacena el valor mínimo que utiliza para UID en /etc/login.defs. Si no cambia el UID_MINvalor en este archivo, es probable que descubra que su cuenta parecerá "desaparecer" de la pantalla de inicio de sesión de la GUI, y quizás de algunos otros sistemas. Por lo tanto, debe editar ese archivo.

En teoría, podría cambiar el UID de su (s) cuenta (s) OS X de una manera similar para lograr el mismo objetivo. Sin embargo, estoy menos familiarizado con las herramientas de mantenimiento de cuentas de OS X, por lo que no puedo proporcionar instrucciones explícitas para hacerlo. Ajustar los valores de OS X tendría la ventaja de no tener que ajustar UID_MINen Linux.

Si tiene varias cuentas en su computadora, debe ajustarlas todas para mantenerlas sincronizadas en las instalaciones de su sistema operativo.

Un punto más: el valor de ID de grupo (GID) se almacena de manera similar. IIRC, Ubuntu asigna un valor GID para cada cuenta que es idéntico a su valor UID. No recuerdo qué hace OS X por defecto. Es posible que desee ajustar los valores de GID para los dos sistemas operativos de forma análoga a los cambios de UID, pero es probable que esto no sea tan importante como ajustar los valores de UID.

EDITAR: si desea cambiar su UID (y GID, si lo desea) en macOS / OS X en lugar de en Ubuntu, puede hacerlo. Como esta modificación en macOS está más allá del alcance de este sitio, solo enlazaré a algunas páginas que proporcionan procedimientos para hacerlo en macOS:

Rod Smith
fuente
¡Wow gracias! Esta es una respuesta integral muy bien escrita: ¡explica el contexto completo del problema! Esta solución me ayudó a obtener una partición compartida impecable sin comprometerme. Al principio todavía existía el problema de la propiedad del archivo: "ignorar la propiedad de este volumen" en OSX no me daría acceso de escritura a los archivos de OSX recién creados cuando se ejecuta bajo ubuntu (icono de candado) y viceversa. Así que terminé configurando una nueva cuenta nueva en ubuntu usando el mismo nombre de usuario que en OSX y cambiando el UID nuevamente.
Ahora tengo acceso total desde ambos sistemas operativos para archivos existentes y recién creados sin tener que cambiar las restricciones de acceso. Como esta es una respuesta tan ejemplar, te daré una recompensa una vez que la pregunta sea elegible para una recompensa. ;-)
Después de seguir sus instrucciones, intenté iniciar sesión en ubuntu. Cuando presioné enter vi una pantalla negra por un segundo y luego volví a la pantalla de inicio de sesión. Después de volver a cambiar cualquier cosa al estándar 1000 desde mi cuenta temporal, podría iniciar sesión nuevamente. ¿Alguna idea de por qué no pude iniciar sesión con el nuevo uid?
borisdiakur
Si olvidó cambiar los permisos en su propio directorio de inicio, eso podría explicar el problema. Si está utilizando 13.10, también es concebible que algo en Ubuntu haya cambiado y que esté causando problemas si no se ajustó UID_MIN.
Rod Smith
1
ACTUALIZACIÓN: ¿acabo de hacer usermod en mi sistema y de alguna manera el permiso de mi directorio de inicio no tuvo que ser cambiado? Todo funciona bien solo después de usermod (como root).
krumpelstiltskin 01 de
0

He descubierto que a veces puede hacer clic en una carpeta que le gustaría compartir y presionar comando + I. Luego haga clic en el candado e ingrese su contraseña si no está desbloqueada. Luego, donde dice "todos", elija leer y escribir.

Otra cosa que funciona es configurar una carpeta como una "carpeta compartida", puede hacerlo en el panel de preferencias de uso compartido en las preferencias del sistema.
Vaya a las preferencias del sistema> compartir> compartir archivos. Luego, comparta que la casilla para compartir archivos está marcada y agregue la carpeta que desea compartir con el botón más. Luego puede cambiar los permisos para leer y escribir.

UNA NOTA: ¡usar la segunda opción también abrirá su computadora para permitir el acceso a la carpeta de su elección a través de Internet (solo mientras se inicia en os x)! Haga que tenga una contraseña segura y que probablemente la desactive en lugares públicos (¡no olvide obtener su sombrero de papel de aluminio!)

aChipmunk
fuente
Esto funciona en ambos casos, pero solo usaré la primera opción. Sin embargo, permitir el acceso de "todos" (es decir, el permiso 777) parece demasiado radical, ¿o no? ¿Es esto seguro?
1
Bueno, no se recomienda con seguridad. "Todos" podrán modificar y leer los documentos con esos permisos (creo que esto es unix, creo). Definitivamente es un poco más seguro de usar 774.
edwin
0

Abra una terminal y:

En OS X, intente esto

sudo dscl / -create /Users/<ubuntu-username>
sudo dscl / -append /Groups/<os-x-username> GroupMembership <ubuntu-username>

En Ubuntu, ejecuta esto

sudo adduser --system --no-create-home --ingroup <ubuntu-username> <os-x-username>

Ahora debería poder usar 774o incluso 770para permisos de archivo.

edwin
fuente
Esto no funciona El comando OSX tampoco funciona. Pero he logrado agregar el usuario ubuntu a través de la interfaz GUI en OSX. Después de agregar el usuario del otro sistema operativo al sistema operativo en ejecución y cambiar los permisos a 774 en ambos sistemas operativos, Ubuntu aún no puede obtener acceso completo a todos los archivos en la partición compartida. Algunos subdirectorios, por ejemplo, no puedo abrirlos (el permiso es 774). Así que tuve que cambiarlo a 777 para poder abrirlo. ¿Son seguros estos amables permisos?
Al menos en Ubuntu, el comando debería funcionar. Lo he probado antes de agregar la respuesta. ¿Estás seguro de que sustituiste <ubuntu-username>con tu nombre de usuario real en Ubuntu (idem for <os-x-usernanme>)? ¿Y puede ser más específico sobre los errores que OS X le da al intentar ejecutar este comando?
edwin
Solo dije que el comando no funcionaba en OSX. Si no recuerdo mal, el comando adduserno sale.
He editado la respuesta para esto. Intentalo. No estoy seguro ya que no estoy familiarizado con la administración de usuarios de OS X. En OS X, también puede usar la GUI para crear el usuario de Ubuntu (con el nombre de usuario que usa en Ubuntu) y luego agregarlo a su grupo de usuarios de OS X real.
edwin
No importa. OSX ofrece una GUI simple cuando se utiliza CMD + I, donde puede crear y agregar usuarios con mucha facilidad. Pero esto no resolvió el problema después de todo. Terminé usando 777 permisos.