2 votos

Cambiar los permisos del dispositivo USB de MacOS

Necesito averiguar cómo establecer los permisos de una unidad flash USB a nivel de dispositivo (no de sistema de archivos). En otras palabras, necesito conceder el usuario acceso de lectura/escritura a un dispositivo USB identificado por diskutil que es /dev/diskX donde X es un número entero.

Por ejemplo, inserto una memoria USB y según diskutil su identificador es /dev/disk5 . Si compruebo los permisos de la misma:

$ ls /dev/disk5*
brw-r-----  1 root  operator    1,  15 May 15 08:35 /dev/disk5
brw-r-----  1 root  operator    1,  16 May 15 08:35 /dev/disk5s1
brw-r-----  1 root  operator    1,  17 May 15 08:35 /dev/disk5s2

Tiene root:operator propiedad y rw acceso limitado a Root y r acceso a operators sólo (por eso debe emitir comandos que modifiquen el dispositivo como sudo ).

Lo que tengo que hacer es dar rw acceso al operador también y no es tan simple como sólo chmod 660 /dev/disk5 . En el momento en que desenchufas el dispositivo y lo vuelves a enchufar, pierde los permisos.

¿Por qué tengo que hacer esto?

Necesito arrancar una unidad flash USB en VirtualBox. Para ello, tengo que ser capaz de crear una imagen de disco "cruda" como un passthrough al dispositivo USB real. El problema es que, para hacer esto, debo emitir el comando a través de sudo que luego cambia el usuario que estoy ejecutando VBoxManage lo que provoca una serie de errores ya que root tiene un entorno completamente diferente al del usuario conectado.

Esto se puede lograr en FreeBSD (estoy seguro de que en Linux también a través de un método diferente) modificando el archivo devfs.rules y añadiendo una línea como

add path 'da*' mode 0660 group operator

Lo que esencialmente da rw acceso a cualquier dispositivo de almacenamiento USB (el almacenamiento USB es identificado por FreeBSD como /dev/da0 , /dev/da1 etc.)

¿Cómo puedo hacer esto en MacOS?

0 votos

Sospecho que tendrías que hacer un mapeo autofs persistente. MacOS podría almacenarlos en el directorio local (como en LDAP).

1voto

Douglas Puntos 10417

Nunca pude encontrar una manera de obtener acceso directo al dispositivo sin procesar, sin embargo, VirtualBox tiene una función de "acceso al disco sin procesar" que me permitió evitar este problema.

La forma en que esto funciona es que se crea una unidad VMDK que en realidad está asignada a un volumen físico. Esto actúa como un passthrough para que VB pueda acceder a un dispositivo físico.

VBoxManage internalcommands createrawvmdk -filename "</path/to/file>.vmdk" -rawdisk /dev/disk#

Por ejemplo, si tuviera un físico dispositivo USB con un instalador del sistema operativo podría crear un VMDK que podría adjuntar a una VM.

Ejemplo:

Asume un instalador USB con MacOS/FreeBSD/Linux/Windows. Para conectar ese USB físico a una VM (asumiendo que /dev/disk3 es el dispositivo USB),

  1. Insertar y Desmontar (no expulsar) el dispositivo.

    diskutil unmount /dev/disk3
  2. Crear el VMDK

    sudo VBoxManage internalcommands createrawvmdk -filename "USB_OS_Installer.vmdk" -rawdisk /dev/disk3
  3. Tome la propiedad del VMDK (fue creado como Root a través de sudo sustituye "user" por tu nombre de usuario y deja el grupo "staff" como está)

    sudo chown user:staff USB_OS_Installer.vmdk
  4. Adjunte el VMDK a la VM en la GUI de VirtualBox.

Ahora tienes acceso a un dispositivo físico de arranque a través de tu VM.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X