Come posso impostare automaticamente le autorizzazioni di scrittura sul montaggio di un'unità USB in Linux?


18

Quando monto un'unità USB esterna su Linux (CentOs4), le autorizzazioni sono impostate di default in sola lettura. Poiché sul computer sono presenti più utenti che devono utilizzare l'unità esterna, desidero che tutti dispongano rwdell'autorizzazione per l'intera unità. Voglio anche che siano in grado di montare l'unità se il computer è stato spento accidentalmente. Possono usare sudo mountper montare l'unità, ma questo darà loro solo il permesso di leggere, e ovviamente non voglio permetterlo sudo chmod.

Esiste un'impostazione predefinita che posso modificare in modo che ogni nuovo disco USB esterno ottenga automaticamente le rwautorizzazioni?

Risposte:


17

Per abilitare tutti gli accessi rw, la chiave è umask = 0 opzione per montare il comando.

sudo mount -o umask=0,uid=nobody,gid=nobody /dev/something /mnt/somewhere

umask = 0 è abbastanza, uid e gid solo per motivi di chiarezza, quindi non vedi più proprietari 'root' che necessariamente.


@ La risposta di Tom (scrivendo / etc / fstab entry) ti permetterà di saltare sudoe se scrivi umask = 0 come opzione aggiuntiva lì, otterrai il meglio da entrambi i mondi:

Avere questo in / etc / fstab:

/dev/something /mnt/somewhere auto users,noatime,umask=0 0 0

ti permette di correre

mount /dev/something

e tutti hanno accesso a tutti i file.


Ecco la nota tecnica, se si desidera conoscere i dettagli:

Come man mountdetto, 'umask = 0' assicurerà che nessuna regola aggiuntiva si applichi alla modalità di accesso ai file. Per i filesystem FAT (che sono i più utilizzati sui dischi USB), non è memorizzata alcuna modalità di accesso. Ma il tuo processo attuale ha un certo valore di umask impostato, puoi vederlo se esegui solo umasknel terminale. mountlo utilizza come predefinito e rimuove la modalità di accesso del valore umask da tutti i file sul disco montato. I valori umask più utilizzati sono (ottali) 022 - nessun gruppo e altra scrittura e 027 - nessuna scrittura di gruppo, nessun altro accesso.


Ottengo un errore con 'opzione non valida' se aggiungo umask=0 0 0come voce in fstab. Fa la umasknecessità -entry di essere l'ultima voce? Cosa fa l' managed=0 0 0ultima voce attualmente?
Jonas,

1
FWIW, l'opzione umask è un'opzione solo VFAT, ovvero la soluzione aiuta fintanto che la memoria USB utilizza il filesystem VFAT (che non è stato il mio caso).
Tomislav Nakic-Alfirevic,

2
Grazie. Ma ho dovuto modificarlo per farlo funzionare: sudo mount -o umask=0,uid=nobody /dev/something /mnt/somewherefunziona solo senza impostare il parametro gid.
Nippey,

2

Aggiungi una voce a / etc / fstab. Ecco una voce che ho aggiunto poche ore fa per la mia unità USB Seagate:

UUID = 4ACC734ECC733375 / errori ext3 / media / Linux = rimontaggio-ro, valori predefiniti, utenti, noatime, nodiratime 0 0

La chiave qui è la voce "utenti" che consente agli utenti di montare e smontare l'unità.

Modifica: funziona per unità specifiche: non so se può essere abilitato per tutte le unità con un'unica voce.


Se un utente monta l'unità, anche tutti gli altri utenti otterrebbero l' rwautorizzazione?
Jonas,

1

Tipo mount. Questo darà il posto attuale in cui si trova. Ecco la mia uscita.

rick@rick-Main ~ $ mount
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda6 on /media/DATA1 type vfat (rw,uid=1000,utf8,umask=077)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=rick)
/dev/sdf1 on /media/usb0 type vfat (rw,noexec,nodev,sync,noatime,nodiratime)

L'ultima è la mia chiavetta USB montata su Linux Mint.

Adesso digita

sudo umount /dev/sdf1

questo smonterà l'unità

ora rimontare correttamente.

sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.