Come cambiare utente: gruppo per unità USB fat32?


2

Ho formattato un'unità USB su fat32 usando gparted. Lo monto su /media/usbcui ha le seguenti autorizzazioni.

drwxr-xr-x 2 myname users 4096 May 16 11:00 usb/

attraverso. sudo mount -t vfat -o rw /dev/sdb1 /media/usb. Ora le autorizzazioni cambiano in:

drwxr-xr-x 2 root  root  4096 Dec 31  1969 usb/

Io corro sudo chown -R myname:users /media/usb. L'output è:

chown: changing ownership of ‘/media/usb’: Operation not permitted

Come posso risolvere questo problema?

Risposte:


4

Probabilmente vuoi avere accesso R / W al tuo dispositivo USB come un normale utente. Il problema è che il filesystem FAT non implementa il concetto di proprietari di file, quindi il tuo comando chown (che funziona ad esempio su partizioni ext2 / 3/4 è destinato a fallire).

Hai almeno due possibilità:

  1. Specificare l'opzione usernella fstabvoce corrispondente , in modo che un normale utente possa montare l'unità USB:

     /dev/sdb1     /media/usb      vfat     rw,user       0  0
    

    Quindi utilizzare

     (u)mount /media/usb
    

    per (annullare) montare il supporto come mio nome .

  2. Usa le opzioni di mount uid, gidper specificare a chi dovrebbe appartenere l'intero filesystem montato:

    sudo mount -t vfat -o rw,uid=myname,gid=users /dev/sdb1 /media/usb
    

3

Yo non può modificare direttamente le autorizzazioni Linux su una partizione formattata da Microsoft. È possibile farlo su una partizione Extn, perché questa è una partizione Linux che strambate con i permessi di Linux.

Quello che puoi fare è cambiare la proprietà nella riga corrispondente di / etc / fstab , che implica comunque cambiarla simultaneamente per tutte le directory e i file all'interno del dispositivo. Se vuoi farlo, puoi usare uid = 1000 per te stesso e guid = 46 per il gruppo plugdev, di cui tutti gli utenti sono automaticamente membri.

Quanto sopra si applica anche alle partizioni NTFS, esattamente per lo stesso motivo: Microsoft non dispone realmente delle autorizzazioni per file e directory.


Sì, sono consapevole che microsoft non ha i permessi di file e directory - immagino che mi aspetto che Linux abbia un qualche tipo di comportamento di emulazione senza alterare effettivamente le voci. È una specie di dado che non riesco a montare e utilizzare un'unità USB senza fare ricerche.
user3467349

4
@ user3467349 Non è vero: l'unità è pronta per essere montata così com'è. Quello che non puoi fare è trattarlo come un file system Linux più avanzato, tutto qui.
MariusMatutiae,

Sì, ma quel Linux decide che ho bisogno di rootaccedervi r/wpiuttosto che l'accesso a livello utente è anche abbastanza arbitrario, no? Quindi, se può fare una presunzione (che non riflette il file system sottostante) perché non essere in grado di cambiare anche la presunzione?
user3467349

@ user3467349 Sei in grado di cambiare la presunzione: come ho detto sopra, usa uid = 1000 in fstab e voilà sei il proprietario di tutti i file e directory. La presunzione che menzioni è il fatto che il valore predefinito è l'umask del processo corrente e poiché devi montare il dispositivo come root, eredita naturalmente la proprietà di root. Ma puoi cambiarlo, come sopra. Inoltre, puoi scrivere sul dispositivo come root, poiché tutto verrà dimenticato su un sistema Windows.
MariusMatutiae,

Grazie, non ci ho pensato. Immagino che una soluzione ancora più semplice in quel caso sia usare un'opzione di montaggio non root come udisks.
user3467349

0

L'utente non root predefinito non ha accesso predefinito ai dispositivi di blocco. Se questo è veramente necessario, effettuate una delle seguenti operazioni:

mount -t vfat  -o rw /dev/sdXY /run/media/$username/foo
## /media/.gvfs/$username/foo for ubuntu) 

mount -t vfat -o rw  /dev/sdXY /home/$username/foo

Aggiungi detto utente al Plugdevgruppo.

Quindi, aggiungi o crea uno udevscript di montaggio automatico in/etc/udev/rules.d/80-usb-rules

mountpoint  by /dev/sdXY ,  /dev/by-uuid/ ,   /dev/by-device (using the usb-x-y notation)

Non penso che tu abbia ragione. Le stesse operazioni che ho fatto nel mio esempio funzionano perfettamente per un ext4dispositivo formattato. Potrebbe essere una peculiarità di fat32 / vfat, ma la mia domanda è ancora senza risposta.
user3467349

1
vfat e ntfs NON hanno questo concetto di proprietà e permesso come fanno Linux / Mac, quindi cambiarli è inutile. @Marius spiega come farlo nello stesso modo in cui preferisco personalmente la riga di comando
linuxdev2013

Questo potrebbe essere vero, ma la tua risposta riguardo ai dispositivi a blocchi non è rilevante in questo caso.
user3467349

Sì, un dispositivo USB è un dispositivo a blocchi, ma il problema che sto riscontrando riguarda solo i dispositivi a blocchi formattati fat / vfat. Dovresti aggiornare la tua risposta per essere utile per i futuri lettori invece di insultare le persone.
user3467349

È utile così com'è, ed è il formato che hai scelto per causare problemi e qualsiasi quantità di ricerca pre-azione ti avrebbe detto che ... la mia risposta è una volta una modifica a / etc / fstab come è stato menzionato da un'altra risposta amico impara per usare un sistema.
linuxdev2013,
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.