Como gerenciar permissões em um volume compartilhado para OSX e ubuntu

8

No meu mac, estou usando uma partição HFS não-journaled para compartilhar arquivos entre o OSX 10.8 e o Ubuntu 12.04.

Foi um pensamento interessante a princípio, porque o Time Machine fará backup automático do volume no OSX, mas logo percebi que o OSX e o Ubuntu mexem com a permissão de uma maneira que deixa as coisas confusas para mim.

Portanto, para visualizar e alterar completamente os arquivos, continuo usando as chmodpermissões que me permitem usar totalmente um documento. Mas não entendo por que tenho que continuar aplicando alterações repetidamente .

É possível definir algum tipo de permissão permanentemente para que ambos os sistemas operacionais respeitem permanentemente?

Acho que o 777 funcionará, mas achei que isso não é uma coisa inteligente a se fazer. Mas enquanto 'outros' não tiverem acesso total (sete terceiros), vejo um ícone de cadeado no arquivo no ubuntu.

Seth
fonte
1
Você tem o mesmo nome de usuário no OS X e no Ubuntu? Se você tiver nomes de usuário diferentes, tente adicionar o nome de usuário Ubuntu ao seu grupo no OS X e vice-versa . Dessa forma, você precisaria apenas 774de permissões.
Edwin
@edwin Obrigado pela dica. Como adiciono um nome de usuário ao meu grupo? O uso do 777 é razoável ou inseguro?

Respostas:

12

Os nomes de usuário são irrelevantes. Permissão tanto HFS + e sistemas de ficheiros Linux-nativos são armazenados em termos de facilidade IDs (UIDs), que são os números associados com nomes de utilizador. No Ubuntu, como na maioria das distribuições modernas de Linux, o primeiro usuário recebe um UID de 1000 por padrão. No OS X, o primeiro usuário recebe um UID de 501 por padrão. Portanto, ao compartilhar mídia que codifica valores de UID, é provável que os valores de UID não correspondam.

Uma maneira de corrigir isso é definindo permissões frouxas (o valor do modo, como em rwxr-xr-x, ou 755 em octal). Observe que o código octal das permissões não é o mesmo que o valor UID. Nos dois sistemas operacionais, você pode definir as permissões padrão usadas nos arquivos com o umaskcomando, que especifica o valor do bit a ser removido das permissões do arquivo. Por exemplo, umask 022remove a permissão de gravação para o grupo e outras permissões, resultando em 755 (rwxr-xr-x) permissões em novos arquivos (ou 644 se algo remover o bit de permissão de execução, que é uma prática comum para arquivos). Essa é basicamente uma ferramenta de linha de comando; se você é basicamente um usuário da GUI, precisará encontrar outra ferramenta para fazer o trabalho, provavelmente relacionada aos padrões do seu ambiente de área de trabalho. Isso pode ser obscuro e mal documentado. Além disso, definir permissões frouxas dessa maneira pode ter desvantagens de segurança, especialmente se o seu for um sistema multiusuário.

Uma abordagem melhor é sincronizar os UIDs da sua conta no Linux e no OS X. Você pode alterar facilmente o valor do UID no Linux com o usermodcomando, como em:

usermod -u 501 dale

Este comando define o UID para dale501. No entanto, existem algumas ressalvas significativas:

  • Você deve sair da conta que está modificando antes de modificá-la. Tentar modificar uma conta em uso fará com que essa conta comece a se comportar de maneira estranha.
  • usermoddeve ser usado como root. Você pode executá-lo via sudo, mas fazê-lo na conta que está modificando é extremamente desaconselhável. Assim, você precisará fornecer rootuma senha e fazer login rootdiretamente ou usar a sudopartir de uma segunda conta de usuário.
  • O usermodcomando não altera a propriedade de nenhum arquivo pertencente ao usuário em questão. Para ajustar a propriedade desses arquivos, você precisará localizá-los e depois alterar sua propriedade chown. A maioria dos arquivos estará no diretório inicial do usuário; portanto chown -R dale: /home/dale, digitada rootapós a alteração daledo UID da alteração, a maioria dos dalearquivos será alterada para usar o novo número de UID. Alguns dos arquivos do usuário podem estar localizados em outro lugar. A digitação find / -uid 1000encontrará todos os arquivos que usam o UID antigo (supondo que fosse 1000). Observe que esse findcomando provavelmente levará alguns minutos para ser concluído. Para acelerar, desmonte todos os sistemas de arquivos nos quais você tem certeza de que não encontrará acertos, como volumes FAT ou NTFS.
  • Se você acessar volumes FAT ou NTFS, seus valores de UID serão determinados pelas opções no momento da montagem. Se você usar um gerenciador de arquivos da GUI, é provável que o valor do UID seja definido para quem estiver executando o gerenciador de arquivos, portanto, você não precisará fazer nada de especial. /etc/fstabPorém, se você montar o volume por meio de uma entrada, poderá ser necessário ajustar o valor UID especificado.
  • O Ubuntu armazena o valor mínimo que ele usa para UIDs no Windows /etc/login.defs. Se você não conseguir alterar o UID_MINvalor desse arquivo, provavelmente descobrirá que sua conta parece "desaparecer" da tela de login da GUI e, talvez, de outros sistemas. Portanto, você deve editar esse arquivo.

Em teoria, você pode alterar o UID de suas contas do OS X de maneira semelhante para alcançar o mesmo objetivo. Porém, estou menos familiarizado com as ferramentas de manutenção de contas do OS X, portanto não posso fornecer instruções explícitas para isso. Ajustar os valores do OS X teria a vantagem de você não precisar ajustar UID_MINno Linux.

Se você possui várias contas no seu computador, deve ajustá-las para mantê-las sincronizadas nas instalações do sistema operacional.

Mais um ponto: o valor de ID do grupo (GID) é armazenado de maneira semelhante. IIRC, o Ubuntu atribui um valor GID para cada conta que é idêntico ao seu valor UID. Não me lembro do que o OS X faz por padrão. Convém ajustar os valores de GID para os dois sistemas operacionais de maneira análoga às alterações de UID, mas isso provavelmente não é tão importante quanto ajustar os valores de UID.

EDIT: Se você deseja alterar seu UID (e GID, se desejado) no macOS / OS X, e não no Ubuntu, você pode fazê-lo. Como essa modificação no macOS está além do escopo deste site, vou apenas vincular algumas páginas que fornecem procedimentos para fazer isso no macOS:

Rod Smith
fonte
Uau, obrigada! Esta é uma resposta abrangente muito bem escrita - explicando o contexto completo do problema! Essa solução me ajudou a obter uma partição compartilhada sem falhas, sem comprometer a qualidade. No início, ainda havia o problema da propriedade do arquivo: "ignorar a propriedade deste volume" no OSX não me daria acesso de gravação aos arquivos recém-criados do OSX quando executados no ubuntu (ícone de cadeado) e vice-versa. Então, acabei definindo uma nova conta no ubuntu usando o mesmo nome de usuário do OSX e alterando o UID novamente.
Agora, tenho acesso total dos dois sistemas operacionais aos arquivos existentes e recém-criados, sem precisar alterar as restrições de acesso. Como essa é uma resposta exemplar, darei uma recompensa assim que a pergunta se tornar elegível. ;-)
Depois de seguir suas instruções, tentei entrar no ubuntu. Quando apertei enter, vi uma tela preta por um segundo e depois retornei à tela de login. Depois de alterar qualquer coisa para o padrão 1000 da minha conta temporária, eu poderia fazer login novamente. Alguma idéia de por que não consegui entrar com o novo uid?
borisdiakur
Se você esqueceu de alterar as permissões em seu próprio diretório inicial, isso pode ser o problema. Se você estiver usando a 13.10, também é possível que algo no Ubuntu tenha mudado, causando problemas se você não se ajustar UID_MIN.
Rod Smith
1
ATUALIZAÇÃO: acabei de fazer o usermod no meu sistema e, de alguma forma, a permissão do meu diretório pessoal não precisou ser alterada !? Tudo funciona bem depois de apenas usermod (como root).
Krumpelstiltskin #
0

Descobri que às vezes você pode clicar em uma pasta que gostaria de compartilhar e pressionar o comando + I. Em seguida, clique no cadeado e digite sua senha, se não estiver desbloqueada. Em seguida, onde diz "todos", escolha ler e escrever.

Outra coisa que funciona é configurar uma pasta como uma "pasta compartilhada". Você pode fazer isso no painel de preferências de compartilhamento nas preferências do sistema.
Vá para preferências do sistema> compartilhamento> compartilhamento de arquivos. Em seguida, compartilhe que a caixa de compartilhamento de arquivos esteja marcada e adicione a pasta que você deseja compartilhar usando o botão mais. Em seguida, você pode alterar as permissões para ler uma gravação.

NOTA: o uso da segunda opção também abrirá seu computador para permitir o acesso à pasta de sua escolha pela Internet (somente enquanto inicializado no os x) !! Faça com que você tenha uma senha segura e que provavelmente a desabilite em locais públicos (não se esqueça de pegar seu chapéu de alumínio!)

aChipmunk
fonte
Isso funciona nos dois casos, mas vou usar apenas a primeira opção. No entanto, permitir o acesso de "todos" (ou seja, a permissão 777) parece radical demais - ou não é? Isso é seguro?
1
Bem, não é recomendado com certeza. "Todo mundo" poderá modificar e ler os documentos com essas permissões (mas acho que isso é algo unix principalmente). É definitivamente um pouco mais seguro de usar 774.
21413 Edwin
0

Abra um terminal e:

No OS X, tente isso

sudo dscl / -create /Users/<ubuntu-username>
sudo dscl / -append /Groups/<os-x-username> GroupMembership <ubuntu-username>

No Ubuntu, execute este

sudo adduser --system --no-create-home --ingroup <ubuntu-username> <os-x-username>

Agora você deve poder usar 774ou até mesmo 770para permissões de arquivo.

Edwin
fonte
Isso não funciona. O comando OSX também não funciona. Mas eu consegui adicionar o usuário do ubuntu através da interface GUI no OSX. Depois de adicionar o usuário do outro sistema operacional ao sistema operacional em execução e alterar as permissões para 774 nos dois sistemas operacionais, o Ubuntu ainda não pode obter acesso total a todos os arquivos na partição compartilhada. Alguns subdiretórios, por exemplo, não consigo abrir (a permissão é 774). Então eu tive que mudar para 777 para abri-lo. Essas permissões graciosas são seguras?
Pelo menos no Ubuntu, o comando deve funcionar. Tentei antes de adicionar a resposta. Tem certeza de que substituiu <ubuntu-username>seu nome de usuário real no Ubuntu (idem for <os-x-usernanme>)? E você pode ser mais específico sobre quais erros o OS X apresenta ao tentar executar este comando?
Edwin
Eu apenas disse que o comando não funcionava no OSX. Se bem me lembro, o comando addusernão sai.
Eu editei a resposta para isso. Tente. Não tenho certeza, pois não estou familiarizado com o gerenciamento de usuários do OS X. No OS X, você também pode usar a GUI para criar o usuário do Ubuntu (com o nome de usuário que você usa no Ubuntu) e adicioná-lo ao seu grupo de usuários real do OS X.
Edwin
Isso não importa. O OSX oferece uma GUI simples ao usar o CMD + I, onde você pode criar e adicionar usuários com muita facilidade. Mas isso não resolveu o problema, afinal. Acabei usando 777 permissões.