Ignorando permissões padrão ao montar volumes HFS + no linux


8

Eu tenho um macbook pro de inicialização dupla com o Snow Leopard e o Kubuntu 11.10 e quero ler (não me importo com a gravação) meu diretório pessoal do Mac quando estou executando o Kubuntu.

Posso montá-lo sem problemas, mas meu usuário no Kubuntu on não pode ver os arquivos no HFS + de propriedade do usuário mac, devido a diferentes uid (502 no Mac, 1000 no Kubuntu).

Analisando os documentos do kernel sobre o HFS + , li o seguinte:

When mounting an HFSPlus filesystem, the following options are accepted:
[CUT]
    uid=n, gid=n
        Specifies the user/group that owns all files on the filesystem
        that have uninitialized permissions structures.
        Default:  user/group id of the mounting process.

Então, eu tentei usar estas opções:

$ sudo mount -t hfsplus -o uid=1000,gid=1000 /dev/sda2 /mnt/Mac

Mas eles parecem não fazer nada: ainda vejo as mesmas permissões quando olho em volta usando ls -l. Posso estar perdendo alguma coisa, alguma pista?

Eu sei que posso alterar meu ID de usuário no Ubuntu para combiná-lo com o Mac Os X, mas prefiro evitá-lo, se possível.

Respostas:


9

bindfsé a resposta. Ele precisará de um sistema de arquivos já montado e fornecerá uma visão dele com o que você desejar:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo

Editar:

Além disso, ao ler o documento , percebi que a mapopção (1.10 e posterior) pode se encaixar melhor:

sudo bindfs --map=502/1000 /media/diskFoo ~/myUIDdiskFoo

Solução muito legal. Ele resolve o problema sem alterar os comportamentos padrão dos sistemas operacionais e possibilita muito mais opções. Apenas tome cuidado se o sistema for compartilhado com outros usuários, isso pode expor arquivos particulares a um público inesperado.
gerlos

11
Sim. Fiquei surpreso que o utilitário de montagem do sistema não oferece essa capacidade. Como alternativa, você pode usar a mapfuncionalidade do bindfs para simplesmente mapear o usuário 502 a 1000, o que pode ser mais seguro e mais do que você pretendia.
Catskul

Como não tenho reputação de comentar, apenas observarei que há um pequeno erro na resposta de Catskul, an = missing, deve ser: sudo bindfs --map = 502/1000 / media / diskFoo ~ / myUIDdiskFoo
J. Simon van der Walt

1

No final, criei um usuário linux com o mesmo UID do meu usuário do mac os x, mas ele não pode procurar todos os diretórios da minha casa no mac hfs + volume porque muitos arquivos eram de propriedade do usuário mac "unknown", UID 99 (consulte http://googlemac.blogspot.com/2007/03/user-99-unknown.html ).

Parece que eles o fizeram para permitir que você monte e leia seu volume quando você o conecta a um computador diferente. Quando um usuário comum examina os arquivos pertencentes ao UID 99, ele os vê como seus proprietários. Muito estranho. Somente a raiz os vê como são.

Então, reiniciei no Mac Os X, entrei com um usuário diferente com privilégios administrativos e usei o chown -R 502: 20 / Users / gerlos / * para alterar o proprietário de cada arquivo em minha casa. Agora eu posso ler tudo sem nenhum problema.

Observações:

  • A ferramenta padrão do kubuntu gui para criar novos usuários no Kubuntu 11.10 não pode criar usuários com UID menor que 1000. Use o adduser no terminal.
  • você pode conhecer o UID do usuário usando o comando "id" no terminal.
  • no mac os x, você precisa ser root para ver o verdadeiro proprietário dos arquivos. Portanto, espere resultados diferentes se você digitar "ls -n / Users / gerlos" e "sudo ls -n / Users / gerlos".

Essa diferença no OSX entre o usuário unix "real" e o usuário reconhecido pelo Finder me deu muita dor de cabeça ... pode até fazer com que alguns aplicativos no OSX se comportem de forma estranha (por exemplo, o Dropbox não sincroniza seus arquivos). Para evitar qualquer problema, efetue login no seu sistema OSX, abra um terminal e verifique se o usuário unix possui tudo o que já possui. Talvez eu não entenda alguma coisa, mas na minha experiência usando a GUI não é suficiente.
gerlos

1

Na verdade, estou procurando fazer algo semelhante quando me deparei com essa pergunta. Entendo, olhando desde o seu primeiro post, que a opção de montagem solicitada está perguntando qual uid do usuário deve ser usado em vez do padrão do seu sistema Linux (ou seja, uid 1000). Portanto, você deve usar 502, que é o proprietário esperado do sistema de arquivos que você está tentando montar.

Eu testei isso na minha própria situação, e funcionou muito bem, com o uid 99 para um sistema de arquivos compartilhar entre meus sistemas. Com isso, não precisarei sair trocando de aplicativos. Então, obrigado por compartilhar. Isso pode não ser muito para você, mas pode ajudar outra pessoa. Felicidades


11
Direita. A melhor solução é deixar de lado os UIDs e permissões, montar seu sistema de arquivos HFS + como você normalmente faz e, em seguida, montar sua casa no sistema de arquivos HFS + usando bindfs, para que tudo pareça pertencer ao seu usuário linux. Dessa forma, você nunca precisará usar UIDs personalizados, nem alterar as permissões no sistema de arquivos HFS +, para preservar o comportamento padrão nos dois sistemas. Como é possível remontar com bindfs a página inicial de cada usuário, você pode preservar arquivos privados, mesmo em sistemas compartilhados, mantendo-os acessíveis aos usuários.
Gerenciou 14/12
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.