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?