Como gravar arquivos em um USB sem ser root?

10

Eu tenho um pen drive de 4 GB que particionei sudo cfdisk /dev/sdbe formatado sudo mkfs /dev/sdb1. No momento, ele está definido como ID 83com o Sistema Linuxquando executo sudo fdisk -lmeu Debian Squeeze.

Eu uso pmountpara montar as unidades USB externas. Então, fazer uma pmount /dev/sdb1montagem, /media/usb0porque eu tenho o ff. linha em /etc/fstab:

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

Depois de emitir o pmountcomando, o USB é montado em /media/usb0- fazendo um ls -l /media/usb0:

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

Então, eu cuido dos meus negócios e tento copiar um arquivo, /media/usb0mas obtenho o erro abaixo:

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

Mas quando emito o mesmo cpcomando sudo, consigo copiar o arquivo.

Por que isso acontece? Tentei outra unidade USB que possuo e sou capaz de escrevê-los sem esse erro. Havia algo errado com a forma como eu formatei ou particionei o pen drive?

Eric
fonte

Respostas:

7

Você formatou a partição sdb1 usando umext* sistema de arquivos ( ext2 , ext3 ou ext4 ; não consigo recuperar 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 sistemas de arquivos atualizados sempre começam com a raiz ( /media/usb0neste caso) pertencente a root:root, e geralmente com permissões que permitem apenas a modificação pelo proprietário.

Para verificar isso, monte o sistema de arquivos e execute ls -ld /media/usb0para ver a propriedade / permissões atuais. Meu palpite é:

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

Uma correção simples seria: a) chowno sistema de arquivos montado em sua própria conta Linux; ou b) conceder permissão de gravação a todos chmod.

No entanto, no final, isso não seria uma boa solução, pois os arquivos criados passariam a pertencer ao seu UID, não ao 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 adicionais; portanto, NTFS ( mkfs.ntfs) ou FAT32 ( mkfs.vfat) seria uma opção muito melhor para o sistema de arquivos.

user1686
fonte
Eu tentei fazer sudo mkfs.ntfs /dev/sdb1e sudo mkfs.vfat /dev/sdb1mas eu recebo o erro sudo: mkfs.xxxx: command not found, onde xxxxé ou ntfse vfat. Como faço para que isso funcione no Debian Squeeze?
Eric
@ Eric: Instale ntfs-3g + ntfsprogs + dosfstools .
user1686
Ok, eu instalei isso. Agora, quando eu tentar montar, eu recebo este erro: ntfs-3g-mount: failed to open /dev/fuse: Permission denied. O que eu faço sobre isso?
Eric
4

Isso acontece nos 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á sua unidade USB montada automaticamente sob a permissão da sua conta de usuário comum e não como root. Veja informações detalhadas nos fóruns Debian neste link.

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

miklosq
fonte
2

Use sudoe altere as permissões com o chmodcomando

Veja minha resposta nessa pergunta para ver como usar chmod:

Eu sugiro que você use chmod 777para permitir tudo (usá- ls -llo será exibido drwxrwxrwx).

kokbira
fonte
1

Se o seu sistema de arquivos for FAT16 ou FAT32, você deverá 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 https://help.ubuntu.com/community/Mount/USB#Mount_the_Drive

kamy22
fonte
0

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

Sven
fonte
Como mencionado acima por @Sven, root: root na propriedade é o motivo de abrir como root no terminal ou gui OU usar chown para alterar o proprietário ou o grupo para permitir o uso desse usb conforme o esperado.
precisa saber é o seguinte