Cambiar permisos en el dispositivo USB macOS

2

Necesito averiguar cómo configurar los permisos de una unidad flash USB en el nivel del dispositivo (no del sistema de archivos). En otras palabras, debo conceder al 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 unidad flash USB y de acuerdo con diskutil su identificador es /dev/disk5 . Si verifico 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 de propiedad y rw de acceso limitado a la raíz y r de acceso a operators solamente (por eso debe emitir comandos que modifiquen el dispositivo como sudo ).

Lo que necesito hacer es darle a rw acceso al operador también y no es tan simple como chmod 660 /dev/disk5 . En el momento en que desconectas el dispositivo y lo vuelves a conectar, pierde los permisos.

¿Por qué necesito hacer esto?

Necesito iniciar una unidad flash USB en VirtualBox. Para hacerlo, necesito poder crear una imagen de disco "sin procesar" como un paso 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 usuario que inició sesión.

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

add path 'da*' mode 0660 group operator

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

¿Cómo hago esto en macOS?

    
pregunta Allan 15.05.2017 - 14:54

1 respuesta

0

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

La forma en que funciona es que se crea una unidad VMDK que en realidad se asigna a un volumen físico. Esto actúa como un paso 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 dispositivo USB físico con un instalador de SO, podría crear un VMDK que podría adjuntar a una VM.

Ejemplo:

Suponga 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. Inserta y unmount (no expulsa) el dispositivo.

    diskutil unmount /dev/disk3
    
  2. Crea el VMDK

    sudo VBoxManage internalcommands createrawvmdk -filename "USB_OS_Installer.vmdk" -rawdisk /dev/disk3
    
  3. Tome posesión del VMDK (se creó como raíz a través de sudo ; reemplace "usuario" con su nombre de usuario y deje el grupo "staff" tal como está)

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

Ahora tiene acceso a un dispositivo de medios de arranque físico a través de su máquina virtual.

    
respondido por el Allan 23.11.2017 - 19:16

Lea otras preguntas en las etiquetas