Como eu monto manualmente um sistema de arquivos linux de leitura / gravação como um usuário normal?


19

Isso pode parecer uma pergunta estúpida, mas na maioria das coisas sobre Linux, parece-me que muitas coisas triviais não estão documentadas.

De qualquer forma, quero simplesmente montar um sistema de arquivos ext4 em um ponto de montagem normal no Ubuntu (/ media / whereever), como gravável para leitura para o usuário logado atual, ou seja, eu.

Não quero adicionar nada ao / etc / fstab, apenas quero fazê-lo agora, manualmente. Eu preciso de privilégios de superusuário para montar um dispositivo, mas somente o root pode ler / gravar essa montagem. Eu tentei várias opções de montagem, adicionei ao fstab, mas sem sorte.


Existe uma razão pela qual você não deseja montá-lo em algum lugar do diretório inicial?
Robert S Ciaccio

Respostas:


13

Em um sistema de arquivos ext4 (como ext2, ext3 e na maioria dos outros sistemas de arquivos originários de unix), as permissões efetivas de arquivos não dependem de quem montou o sistema de arquivos ou das opções de montagem, apenas dos metadados armazenados no sistema de arquivos.

Com o Ubuntu, a montagem deve ocorrer automaticamente quando você insere o disco ou pode clicar em um ícone para montar. Você também pode instalar pmountpara montar sistemas de arquivos como um usuário comum a partir da linha de comandos.

Se você possui um sistema de arquivos removível que usa IDs de usuário diferentes do seu sistema, pode usar bindfs(no pacote Ubuntu com o mesmo nome) para fornecer uma visão de qualquer sistema de arquivos com diferentes propriedades ou permissões. O sistema de arquivos removível já deve estar montado, por exemplo, ativado /media/disk9; então, se você quiser aparecer como o proprietário de todos os arquivos, poderá executar

mkdir ~/disk9
sudo bindfs -u $(id -u) -g $(id -g) /media/disk9 ~/disk9

Obrigado! Isso funcionou para mim com o ext3. Observe que eu tive que montar primeiro o sistema de arquivos ext3 em algum diretório de montagem, depois montar esse diretório com bindfs no diretório final.
Ilari Kajaste

8

Quando você monta o sistema de arquivos ext4, ele usa as permissões incorporadas nesse sistema de arquivos. Se você deseja substituí-los, use o seguinte:
1. Encontre o UID do usuário que você deseja montar como: id <username>e procure UID = <userid> (<username>) GID = <groupid> (<groupname>) 2 .sudo mount -o nosuid,uid=<userid>,gid=<groupid> /dev/whatever /media/wherever

Isso montará o sistema de arquivos e marcará o usuário especificado como o proprietário de todos os arquivos e o grupo especificado como o grupo de todos os arquivos. nosuidé uma medida de segurança que impede o usuário de trazer programas suid e usá-los para obter acesso root ao sistema (ou seja, uma versão suid do bash no sistema de arquivos). Adicionar a noexecopção fornecerá segurança adicional, mas impedirá o usuário de executar arquivos no sistema de arquivos.

Nota: Se você está apenas tentando interagir com o sistema de arquivos, conserte as permissões no dispositivo ou interaja com ele como root se for apenas uma coisa temporária (ou seja, recuperar uma instalação quebrada).

Se for para montar uma USB ou outra unidade externa removível, verifique o pmountsistema que pode automatizar o processo ou, pelo menos, torná-lo consideravelmente mais fácil (por exemplo, pmount <device>crie as pastas para você, monte-o como seu usuário, e desmontá-lo como usuário)


1
Alguma idéia se isso deve funcionar com EXT3 também? Eu entro EXT3-fs: Unrecognized mount option "uid=1000" or missing valueno dmesg quando o tento com ext3.
Ilari Kajaste

@Ilari: Não funcionará com o ext3, nem com o ext4 para esse assunto. A maioria dos drivers Linux para sistemas de arquivos unix não possui opções de mapeamento UID e GID.
Gilles 'SO- stop be evil'

-1 Não funciona.
Ilari Kajaste


1

Se você não estiver disposto a editar manualmente seu arquivo / etc / fstab, sugiro experimentar o PySDM para definir as regras para montar seu sistema de arquivos ext4 regularmente. Ele pode ser instalado instalando o pacote "pysdm" no Synaptic ou pesquisando no Ubuntu Software Center "pysdm". Depois de instalado, ele está disponível em Sistema -> Administração -> Gerenciador de Dispositivos de Armazenamento.

PySDM em ação


1

Acabei de perceber, depois de ler o último comentário em http://ubuntuforums.org/showthread.php?t=2142284, que tudo o que precisamos fazer ésudo chown -Rvf <user>:<group> <mountpoint>

Isso é tudo o que é necessário ...


2
Esta é uma operação destrutiva. Se você fizer isso antes da montagem, não fará diferença a propriedade do arquivo na unidade montada; se você fizer isso após a montagem, ele substituirá todas as permissões. Se a unidade contiver uma instalação do Linux, a alteração de permissões como essa tornará impossível iniciar após a desmontagem.
Warbo
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.