Como montar a unidade HFS + e ignorar permissões

25

Eu instalei o Ubuntu e o Windows no meu MacBook e o Ubuntu é o meu SO principal; no entanto, toda a minha mídia permanece na minha partição OSX. Quero poder acessá-lo (pelo menos a pasta inicial do meu usuário OSX) no Ubuntu sem precisar iniciar um media player (ou qualquer outra coisa) como root. Além disso, como ocasionalmente desejo inicializar minha máquina no OSX, não quero alterar nada que precise mudar com frequência (li muito sobre a alteração do UID - não entendo exatamente o que isso implica, mas eu não gostaria de alterar meu UID para frente e para trás, dependendo do sistema operacional em uso. Da mesma forma, não quero alterar as permissões do sistema de arquivos).

Além disso, vi algo sobre uma opção "sem dono", mas isso não parece fazer o que eu quero.

Então, eu acho que gostaria de poder fazer algo assim:

sudo mount -t hfsplus -o noowner /dev/sda2/ /media/Mac

E, em seguida, consiga acessar todas as minhas mídias (pelo menos tudo na pasta Home do usuário do OSX) sem entrar como root. (para maior clareza: a entrada da linha de comando acima não faz o que eu quero, mas quero poder fazer algo semelhante).

Ou seria melhor mudar meu UID? E se sim, como?

weberc2
fonte
Você pode dar uma olhada na minha resposta. Acredito que respondi sua pergunta mais corretamente do que a resposta marcada.
Catskul 19/03/14
@Catskul Não, não posso. Esta pergunta tem mais de 2 anos. Nesse período, vendi meu MacBook e reproduzir esta questão com o objetivo de validar sua resposta é proibitivamente difícil.
weberc2

Respostas:

28

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
Catskul
fonte
A carga na CPU e na memória é bastante substancial, no entanto. Se isso for um problema, eu recomendaria a solução do @ weberc2. Caso contrário, ótima resposta.
frhd
bindfs tem sido escamoso para mim. eu usei a resposta para este post askubuntu.com/questions/315078/... vez
krumpelstiltskin
Boa resposta (votada), mas requer a instalação de bindfs. Por que isso não é tão bom? Bem, este é o meu caso incomum: amigo me dá o MacBook antigo (não sei se o Pro) para fazer backup de dados do MacOS que não inicializa. Eu tento a versão mais recente do Ubuntu e sem sorte (falha do driver nouveau, nomodeset não ajuda). Então começo a voltar com as versões do Ubuntu até encontrar uma que inicialize, 9.10 (sim), servidores de repo não estão mais online. bindfs não pode ser instalado. A resposta aceita resolve esse problema.
Hatoru Hansou 28/05
19

Não consegui descobrir como ignorar as permissões, mas acabei alterando o UID na minha conta Ubuntu para corresponder à minha conta OSX:

sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser
sudo passwd tempuser

Insira a nova senha. Faça logout, faça login como "outro" com o nome de usuário "tempuser" e a senha que você escolheu anteriormente. Abra um terminal e digite:

sudo usermod --uid 501 yourusername
sudo chown -R 501:yourusername /home/yourusername

* altere "seu nome de usuário" para seu nome de usuário não temporário e 501 para o UID da sua conta Mac (a primeira conta Mac inicia em 501, mas os usuários subsequentes terão UIDs diferentes).

Saia do tempuser e faça login novamente na sua conta normal (isso é importante; não basta mudar de usuário - acontecem coisas ruins). Abra uma janela do terminal e digite:

sudo userdel -r tempuser

Para mais detalhes, visite esta página .

Ressalvas

  • Somente um usuário linux pode obter acesso. Essa configuração não permitirá que vários usuários Linux acessem vários diretórios de usuário na unidade HFS +. Isso ocorre porque a Apple bloqueia os diretórios do usuário (e os diretórios de mídia como Música) para 700 ( rwx------).
  • Depois de alterar seu UID, o gerenciador de login deixará de listar esse usuário. Você precisa alterar a UID_MINopção /etc/login.defde 1000para 500.
  • Finalmente, como o UID do usuário mudou, o acesso à unidade se torna uma confusão de permissões. Você precisará anotar o local exato da pasta inicial do usuário para visualizá-la. A conclusão de guias e a navegação no gerenciador de arquivos se tornarão problemáticas para pastas fora da pasta inicial do usuário original da Apple sudo.
weberc2
fonte
a abordagem usermod funcionou para mim. certifique-se de remover / media / USERNAME se desejar usar unidades USB. askubuntu.com/questions/583375/...
krumpelstiltskin
Para a sua advertência 1, 700 é realmente o padrão para diretórios de usuários no OS X, mas não há problema em alterá-lo se não lhe convém, por exemplo, para o 755.
fkraiem
Enquanto o uso do sudo para emitir comandos e iniciar o nautilus com sudo permite acesso a qualquer diretório no MacOS HD, o método uid é o melhor quando você precisa mais do que simplesmente acessar os arquivos, por exemplo, transferi-los para uma pasta compartilhada em outra máquina (usando samba, por exemplo). A instância elevada do nautilus não pode explorar a rede, uma instância normal do nautilus, mas não permite copiar e colar no MacOS HD. Dê a um tempuser o uid 501 resolvido o problema para mim, permitindo que eu faça backup de dados de um MacOS sem inicialização para uma pasta compartilhada.
Hatoru Hansou
Para 16.10, exceto UID_MIN, também é necessário adicionar GID_MIN=500ao/etc/login.def
draw
5

A documentação para a implementação do kernel linux do sistema de arquivos HFS + lista uma uidopção de montagem que permite "possuir" todos os arquivos (e talvez outras opções que também possam ser úteis).

JanC
fonte
Eu tenho tentado fazer isso, mas não sei qual UID devo usar. Eu li que é algo como 501 para OSX, mas a conta não é o usuário original do OSX. Como posso descobrir essas informações?
Weberc2
@ weberc2: ls -l /media/YourHFSdisk/mostrará o uid e o gid dos arquivos / pastas atuais. Os discos HFS + que me deparei parecem pertencer principalmente ao uid 99 e ao gid 99. No entanto, tentei várias combinações de configurações uid / gid / umask no comando mount, e ele não pareceu mudar nada.
Mivk
Isto não funcionou para mim. Da documentação: "uid / gid \ n Especifica o usuário / grupo que possui todos os arquivos no sistema de arquivos que possuem estruturas de permissões não inicializadas." Infelizmente, todos os arquivos no meu sistema de arquivos ainda são propriedade de 501 (estruturas de permissões ou seja, eles têm inicializado ()?)
Colin
2

Eu sei que isso é antigo, mas há outra maneira de contornar isso que parece funcionar muito bem para mim. Como todos os arquivos eram de propriedade de um usuário "root", tudo o que fiz foi emitir a su rootpartir do terminal e ls -lah /media/Macintosh HDde lá. Usando o root, pude ignorar o erro de permissão negada.

user236192
fonte
simples e desonesto
SYK
1

Consegui acessar arquivos de um disco rígido antigo do Macbook executando o gerenciador de arquivos com privilégios elevados.

gksudo thunar

Em seguida, copie os arquivos conforme necessário.

John
fonte
0

Esta é a opção geral que estou usando funciona perfeitamente

mkdir /media/test
mkdir /media/diskhfs
mount /dev/sdb1 /media/test -o rw
bindfs -o perms=775,mirror=userorid --map=99/userorid:@99/@uderorid /media/test /media/diskhfs
rmil
fonte