Devo scoprire come impostare le autorizzazioni di un'unità flash USB a livello di dispositivo (non di file system). In altre parole, devo concedere l'accesso utente in lettura / scrittura a un dispositivo USB identificato da diskutil che è /dev/diskX dove X è un numero intero.
Ad esempio, inserisco un'unità flash USB e, in base a diskutil , l'identificatore è /dev/disk5 . Se controllo i permessi:
$ 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
Ha root:operator ownership e rw accesso limitato a root e r accesso a% solooperators (ecco perché è necessario emettere comandi che modificano il dispositivo come sudo ).
Quello che devo fare è dare anche l'accesso rw all'operatore e non è così semplice come chmod 660 /dev/disk5 . Nel momento in cui scolleghi il dispositivo e lo ricolleghi, perde le autorizzazioni.
Perché devo fare questo?
Ho bisogno di avviare una chiavetta USB in VirtualBox. Per fare ciò, devo essere in grado di creare un'immagine disco "grezza" come passthrough al dispositivo USB reale. Il problema è, per fare questo, devo impartire il comando tramite sudo che poi cambia l'utente che sto eseguendo VBoxManage che causa un numero di errori dal momento che root ha un ambiente completamente diverso dall'utente loggato.
Questo può essere realizzato in FreeBSD (sono sicuro che Linux sia anche con un metodo diverso) modificando il file devfs.rules e aggiungendo una riga come:
add path 'da*' mode 0660 group operator
Che dà essenzialmente rw di accesso a qualsiasi dispositivo di archiviazione USB (la memoria USB è identificata da FreeBSD come /dev/da0 , /dev/da1 , ecc.)
Come posso farlo su macOS?