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?

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.


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 :)


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).



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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.