Como faço para gravar arquivos em um USB sem ser root?

9

Eu tenho um pen drive USB de 4 GB que particionei usando sudo cfdisk /dev/sdb e formatado usando sudo mkfs /dev/sdb1 . Ele está atualmente configurado para ID 83 com System Linux quando eu executo sudo fdisk -l no meu Debian Squeeze.

Eu uso pmount para montar as unidades USB externas. Então, fazendo um pmount /dev/sdb1 monta para /media/usb0 porque eu tenho o ff. linha em /etc/fstab :

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

Depois de emitir o comando pmount , o USB é montado em /media/usb0 - fazer um ls -l /media/usb0 me dá:

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

Então, faço meus negócios e tento copiar um arquivo para /media/usb0 , mas recebo o erro abaixo:

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

Mas quando eu emito o mesmo comando cp com sudo , eu posso copiar o arquivo.

Por que isso acontece? Eu tentei outro drive USB que tenho e eu sou capaz de escrever para eles sem esse erro. Havia algo de errado com a forma como eu formatava ou reparticionei o pendrive?

    
por Eric 02.03.2012 / 13:29

5 respostas

7

Você formatou a partição sdb1 usando um sistema de arquivos ext* ( ext2 , ext3 , ou ext4 ; Não consigo lembrar o padrão). Este é o sistema de arquivos padrão nos sistemas Linux e usa permissões de arquivo Unix para determinar quem pode modificar arquivos ou diretórios. Os novos sistemas de arquivos sempre começam com a raiz ( /media/usb0 neste caso) sendo de propriedade de root:root e, geralmente, com permissões permitindo apenas modificações pelo proprietário.

Para ver isso por si mesmo, monte o sistema de arquivos e execute ls -ld /media/usb0 para ver a propriedade / perms atual. Meu palpite é:

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

Uma correção simples seria a) chown o sistema de arquivos montado em sua própria conta do Linux, ou b) para dar permissão de gravação a todos com chmod .

No entanto, no final, isso não seria uma boa solução, já que os arquivos criados seriam de propriedade do seu UID, não do nome de usuário; isso resultaria rapidamente em incompatibilidades de conta quando a unidade USB estiver conectada a um sistema diferente. Supondo que você possa conectá-lo, isto é - o Windows não suporta ext3 sem truques extras, então o NTFS ( mkfs.ntfs ) ou FAT32 ( mkfs.vfat ) seria uma escolha muito melhor para o arquivo sistema.

    
por 02.03.2012 / 13:50
4

Isto acontece em sistemas Debian posteriores (por exemplo, jessie), bem como em certas unidades flash USB formatadas em fat32 ou ext3.4. Você precisa remover (ou comentar) a seguinte linha do seu / etc / fstab :

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

Depois disso, você terá o seu drive USB montado automaticamente sob a permissão da sua conta de usuário regular e não o root. Veja informações detalhadas sobre fóruns Debian no este link .

Depois disso, sua unidade USB será montada sem problemas com a permissão de gravação do usuário:)

    
por 04.12.2014 / 12:19
2

Use sudo e altere as permissões com o comando chmod .

Veja minha resposta nessa pergunta para ver como usar chmod :

Sugiro que você use chmod 777 para permitir tudo (usando ls -l mostrará drwxrwxrwx ).

    
por 02.03.2012 / 13:43
0

Se o seu sistema de arquivos é FAT16 ou FAT32 você precisa usar este comando:

sudo mount -t vfat /dev/sdb1 /media/usb0 -o uid=1000,gid=1000,utf8,dmask=027,fmask=137

Para mais informações, visite o link link

    
por 08.08.2015 / 10:40
0

Vá para a mídia do sistema de arquivos por meio da GUI. Clique com o botão direito na unidade USB que você deseja copiar e selecione - Abrir como raiz. Digite a senha. Então você pode copiar excluir, arrastar e soltar. Tudo de bom

    
por 15.01.2017 / 22:16