Problema de permissão na pasta / media / user impede que eu acesse mídia externa

11

Quando conecto meu disco rígido externo, insiro um DVD ou tento ver o que tenho no meu drive USB, comportamento peculiar é o resultado usual.

Os sistemas de arquivos montam bem. Quando eu faço login como root sudo su, consigo ver o conteúdo da /media/casper/externaldrivemulta perfeitamente. Meu usuário, no entanto, caspernão pode. O Ubuntu responde a todas as ações que envolvem o local Permission denied:

casper@casper-desktop:/media$ ll /media/casper/externaldrive
ls: cannot access '/media/casper/externaldrive': Permission denied

Eu decidi fazer uma busca na permissão (problemas) da /mediapasta. Como casper, vejo o seguinte:

casper@casper-desktop:/media$ ls -alF
total 16
drwxr-xr-x  4 root root 4096 apr 21 17:47 ./
drwxr-xr-x 25 root root 4096 jul 29 15:43 ../
drwxr-x---  3 root root 4096 aug  3 21:02 casper/
lrwxrwxrwx  1 root root   45 apr 21 17:47 .directory -> /etc/kubuntu-default-settings/directory-media
lrwxrwxrwx  1 root root   42 apr 21 17:47 .hidden -> /etc/kubuntu-default-settings/hidden-media
drwxr-xr-x  2 root root 4096 feb 29 23:56 home/

O que me impressionou foi que ele disse total 16, embora haja apenas no máximo 6 listagens. Então eu executei o comando novamente, mas como root. O resultado foi o mesmo, estranho. (Alguém pode me esclarecer sobre isso?)

Enfim, o que mais me impressionou foi que o /media/casperdiretório não é meu e também não pode ser acessado por mim. Fiquei tentado chown -Ra usar apenas as bazinkas, mas depois de me controlar, pesquisei algo como "Pasta de usuário de mídia, não a minha, me ajude".

Demorou um pouco, mas finalmente me deparei com este tópico, onde os usuários explicam o objetivo das 750 root:root /media/userpastas. Ele garante que apenas o root possa montar, visualizar e gerenciar sistemas de arquivos, dos quais as permissões individuais são alteradas para o usuário real.

Portanto, se minhas informações estiverem corretas, as /media/casper/externaldrivepermissões deverão ser favoráveis ​​para mim. Eu chequei,

root@casper-desktop:/media/casper# ll
total 12
drwxr-x--- 3 root   root   4096 aug  3 21:02 ./
drwxr-xr-x 4 root   root   4096 apr 21 17:47 ../
drwxrwxrwx 1 casper casper 4096 aug  3 20:20 externaldrive/

E este parece ser o caso.

Então é aqui que eu estou preso. O sistema de arquivos tem permissões para mim por toda a árvore de diretórios, mas não consigo acessar um único arquivo. É o mesmo para unidades de CD e USB.

Quem pode me ajudar a acessar o meu precioso?

Ah, e falando nisso. O segmento mencionado acima fala da ACL nessas /media/userpastas, indicada por um +após as permissões regulares, como drwxr-x---+ 3 root root. Meu sistema não mostra isso. A ACL nessas pastas é padrão para o Ubuntu ou o usuário tem coisas especiais acontecendo? Devo ficar preocupado com a origem do problema?

Obrigado pela leitura.

MicroParsec
fonte
1
Eu uso uma configuração de inicialização dupla (16.04 e Win7) e vejo um + no final das permissões da pasta / mídia / usuário. Então acho que é daí que vem o seu problema. Eu os encontrei ( 1 , 2 ) pelo googleing, mas não usei o acl antes para saber se eles são suficientes para resolver o seu problema.
Karsus
2
A lscontagem total de blocos de 1kB usados ​​pelos arquivos no diretório, de forma não recursiva. Consulte unix.stackexchange.com/a/4110/44281 .
amotzg
@ Karsus Obrigado, acho que você encontrou o meu problema. Vou tentar a resposta de Zanna abaixo e mantê-lo atualizado. @ amotzg Aha, isso esclarece as coisas. Obrigado :)
MicroParsec
Por curiosidade, o que significa "3" drwxr-x--- 3*?
thephoenix01

Respostas:

15

Como as permissões e propriedade de /media/caspersão

drwxr-x---  root root 

Sem o +uso de ACLs ( Listas de controle de acesso ), fica claro que apenas o root pode abrir, entrar, ler ou gravar neste diretório. Usuários humildes como nós obtêm as permissões no final da string ---:(

Nós, pessoas sem privilégios, obtemos permissão para acessar este local com ACLs. Não sei por que você ainda não os possui, mas é possível configurá-los, o que pode ser simples ou exigir alguns ajustes:

  • o aclpacote é obrigatório (verifique apt-cache policy acl)
  • o sistema de arquivos deve ser montado com a aclopção

Para verificar o último (substitua sdxYadequadamente pela sua partição raiz):

sudo tune2fs -l /dev/sdxY | grep "Default mount options:"

deve retornar:

Default mount options:    user_xattr acl

As opções de montagem padrão são definidas em /etc/mke2fs.conf

Eles podem ser substituídos, portanto, verifique:

cat /proc/mounts | grep sdxY

parece algo como:

/dev/sdxY / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

O aclque foi dito acima é bom ( não precisa ser mencionado), mas se ele indicar que noaclvocê precisa alterá-lo.

Você pode adicionar a opção às opções de montagem padrão como esta:

sudo tune2fs -o acl /dev/sdxY

Ou você pode adicionar aclàs opções da linha de partição raiz, /etc/fstabpor exemplo:

UUID=whatever /     ext4    errors=remount-ro,acl    0       1

Com as ACLs ativadas, use setfaclpara adicionar permissões para si mesmo. Para conceder usernamepermissões de leitura e execução em / media / casper (você precisa executar permissão para inserir um diretório ou pesquisar seu conteúdo):

sudo setfacl -m u:username:rx /media/casper

Você pode substituir usernamepor uid (provavelmente você está 1000- verifique com o idcomando)

sudo setfacl -m u:1000:rx /media/casper

para ver as permissões de ACL que você usa getfaclcomo Oli fez em sua resposta

getfacl /media/casper

Para remover permissões da ACL de um usuário

sudo setfacl -x u:username /media/casper

Para limpar todas as permissões da ACL

sudo setfacl -b /media/casper

Nota: Eu trapacei e fiz uma pergunta sobre por que existem tantas entradas /media. A resposta está aqui

Zanna
fonte
1
Obrigado @Zanna: apt-cache policy aclretorna o ACL instalado e o mais recente. Default mount optionsmenciona acl. cat /proc/mountnão menciona noacl. Então, acho que preciso adicionar as permissões da ACL manualmente agora, por algum motivo elas não foram feitas. Usei os comandos que você descreveu para me dar permissões rx para o /media/casperdiretório e fico feliz em dizer que posso acessar minha mídia externa novamente. Obrigado Zanna!
MicroParsec 11/08/16
Sim, feliz que você tenha consertado: D
Zanna
2

Quando você deseja dar permissão de acesso a uma unidade Windows do Ubuntu

O chmodcomando normal não funcionará se for uma unidade Windows NTFS.

O seguinte funciona para mim.

Abra o arquivo /etc/mtab:

gedit /etc/mtab

Encontre o nome da unidade neste arquivo (basta passar o mouse na unidade para a qual você está procurando uma solução; no meu caso, a GUI está mostrando um nome diferente e, ao passar o mouse sobre ela, é exibida /media/user-name/drive-name)

Agora em /etc/mtab:

Pesquise o nome da unidade no arquivo e verifique a qual unidade sua unidade montada está atribuída (no meu caso - /dev/sda4)

Agora monte esta unidade com:

sudo ntfs-3g /dev/sda4 /media/"$USER"

Agora sou capaz de executar meus executáveis, mas não consigo ver o conteúdo do nome da unidade, então desmontei a unidade e montei-a novamente.

Hridaynath
fonte