Come faccio a scrivere file su USB senza essere root?


10

Ho una chiavetta USB da 4 GB che ho partizionato usando sudo cfdisk /dev/sdbe formattato usando sudo mkfs /dev/sdb1. Attualmente è impostato su ID 83con System Linuxquando corro sudo fdisk -lsu Debian Squeeze.

Uso pmountper montare le unità USB esterne. Quindi fare un pmount /dev/sdb1monta /media/usb0perché ho l'ff. linea in /etc/fstab:

/dev/sdb1    /media/usb0    auto    rw,user,noauto    0    0

Dopo aver emesso il pmountcomando, l'USB è montato su /media/usb0- facendo un ls -l /media/usb0mi dà:

drwx------ 2 root root 16384 Mar   2 20:08 lost+found

Quindi mi occupo della mia attività e provo a copiare un file /media/usb0ma ottengo l'errore di seguito:

$ cp ~/foo.bar /media/usb0
cp: cannot create regular file `/media/usb0/foo.bar': Permission denied

Ma quando eseguo lo stesso cpcomando con sudo, sono in grado di copiare il file.

Perché succede? Ho provato un'altra unità USB che ho e sono in grado di scrivere a loro senza questo errore. C'è stato qualcosa di sbagliato nel modo in cui ho formattato o ripartizionato la chiavetta USB?

Risposte:


7

Hai formattato la partizione sdb1 usando unext* file system ( ext2 , ext3 o ext4 ; non riesco a ricordare l'impostazione predefinita). Questo è il file system predefinito sui sistemi Linux e utilizza le autorizzazioni dei file Unix per determinare chi può modificare file o directory. I nuovi filesystem iniziano sempre con il root ( /media/usb0in questo caso) di proprietà di root:root, e di solito con permessi che consentono solo la modifica da parte del proprietario.

Per vedere questo per te stesso, monta il filesystem, quindi esegui ls -ld /media/usb0per vedere la proprietà / permanenti correnti. La mia ipotesi è:

drwx------ 2 root root 16384 Mar   2 20:08 /media/usb0

Una semplice soluzione sarebbe quella di a) chownil file system montato sul proprio account Linux oppure b) per dare a tutti il ​​permesso di scrittura chmod.

Tuttavia, alla fine, questa non sarebbe una buona soluzione, poiché i file creati diventerebbero di proprietà del tuo UID, non del nome utente; ciò comporterebbe rapidamente disallineamenti dell'account quando l'unità USB è collegata a un sistema diverso. Supponendo che tu possa collegarlo, vale a dire - Windows non supporta ext3 senza inganno, quindi NTFS ( mkfs.ntfs) o FAT32 ( mkfs.vfat) sarebbe una scelta molto migliore per il file system.


Ho provato a farlo sudo mkfs.ntfs /dev/sdb1e sudo mkfs.vfat /dev/sdb1ma ottengo l'errore sudo: mkfs.xxxx: command not founddove si xxxxtrova ntfse vfat. Come faccio a farlo funzionare su Debian Squeeze?
Eric

@Eric: installa ntfs-3g + ntfsprogs + dosfstools .
user1686

Ok, l'ho installato. Ora in cui provo a montare, ottengo questo errore: ntfs-3g-mount: failed to open /dev/fuse: Permission denied. Cosa faccio al riguardo?
Eric

4

Questo succede su sistemi Debian successivi (es. Jessie) e su alcune chiavette USB formattate fat32 o ext3,4. Devi rimuovere (o commentare) la seguente riga dal tuo / etc / fstab :

/dev/sdb1    /media/usb0    auto    rw,user,noauto    0    0

Successivamente, l'unità USB verrà montata automaticamente sotto l'autorizzazione dell'account utente normale e non come root. Vedi informazioni dettagliate sui forum Debian su questo link.

Successivamente l'unità USB verrà montata senza problemi con il permesso di scrittura dell'utente :)


2

Utilizzare sudoe modificare le autorizzazioni con il chmodcomando.

Vedi la mia risposta in quella domanda per vedere come usare chmod:

Ti suggerisco di usare chmod 777per consentire tutto (usandolo ls -lmostrerà drwxrwxrwx).



0

Vai al file system tramite la GUI. Fare clic con il tasto destro del mouse sull'unità USB in cui si desidera copiare e selezionare - Apri come root. Digita la password. Quindi è possibile copiare Elimina, trascina e rilascia. Tutto bene


Come accennato in precedenza da @Sven, root: root nella proprietà è il motivo aperto come root al terminale o alla gui O usa chown per cambiare il proprietario o il gruppo per permetterti di usare quell'USB come previsto.
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.