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?