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

7

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

Foi um bom pensamento no início, porque o Time Machine irá automaticamente fazer o backup do volume no OSX, mas logo percebi que o OSX e o Ubuntu mexem com a permissão de uma forma que torna as coisas confusas para mim.

Assim, para visualizar e alterar completamente os arquivos, continuo usando chmod para aplicar permissões que me permitirão usar totalmente um documento. Mas não entendo por que tenho que continuar aplicando as alterações várias vezes .

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

Eu acho que o 777 funcionará, mas eu pensei que isso não é uma coisa inteligente a se fazer. Mas enquanto 'outros' não obtiverem acesso total (terceiro sete), eu vejo um ícone de bloqueio no arquivo no Ubuntu.

    
por Seth 01.07.2013 / 18:39

3 respostas

10

Usuários nomes são irrelevantes. As permissões nos sistemas de arquivos nativos do HFS + e do Linux são armazenadas em termos de IDs (UIDs), que são números associados a nomes de usuários. No Ubuntu, como na maioria das distribuições Linux modernas, 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. Assim, ao compartilhar mídias que codificam valores UID, os valores de UID provavelmente não corresponderão.

Uma maneira de corrigir isso é definir permissões soltas (o valor do modo, como em rwxr-xr-x ou 755 em octal). Observe que o código octal de permissões não é o mesmo que o valor de UID. Em qualquer sistema operacional, você pode definir as permissões padrão usadas nos arquivos com o comando umask , que especifica o valor do bit a ser removido das permissões de arquivo. Por exemplo, umask 022 remove 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 é prática comum para arquivos). Isso é basicamente uma ferramenta de linha de comando; se você for em grande parte um usuário de GUI, precisará encontrar outra ferramenta para fazer o trabalho, provavelmente relacionada aos padrões do ambiente de área de trabalho. Isso pode ser obscuro e mal documentado. Além disso, definir permissões perdidas dessa maneira pode ter desvantagens de segurança, especialmente se o seu sistema for multiusuário.

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

usermod -u 501 dale

Este comando define o UID para dale para 501. 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 forma estranha.
  • usermod deve ser usado como root . Você pode executá-lo via sudo , mas fazê-lo a partir da conta que está modificando é desaconselhável ao extremo. Assim, você precisará fornecer root a senha e fazer login em root diretamente ou usar sudo de uma segunda conta de usuário.
  • O comando usermod não altera a propriedade de nenhum arquivo de propriedade do usuário em questão. Para ajustar a propriedade desses arquivos, você precisará localizá-los e alterar a propriedade deles com chown . A maioria dos arquivos estará no diretório inicial do usuário, portanto, chown -R dale: /home/dale , digitado como root após alterar o UID de dale , alterará a maioria dos arquivos de dale para usar o novo número de UID. Alguns dos arquivos do usuário podem estar localizados em outro lugar, no entanto. Digitar find / -uid 1000 encontrará todos os arquivos que usam o antigo UID (supondo que seja 1000). Observe que esse comando find provavelmente levará vários minutos para ser concluído. Para acelerar, desmonte todos os sistemas de arquivos nos quais você tem certeza de que não encontrará ocorrências, 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 GUI, provavelmente o valor UID está definido para quem está executando o gerenciador de arquivos, portanto, não é necessário fazer nada especial. Se você montar o volume por meio de uma entrada /etc/fstab , talvez seja necessário ajustar o valor de UID especificado.
  • O Ubuntu armazena o valor mínimo usado para os UIDs em /etc/login.defs . Se você não conseguir alterar o valor de UID_MIN neste arquivo, provavelmente descobrirá que sua conta parecerá "desaparecer" da tela de login da GUI e talvez de alguns outros sistemas. Assim, você deve editar esse arquivo.

Em teoria, você poderia alterar o UID da (s) conta (s) do OS X de maneira semelhante para atingir o mesmo objetivo. Estou menos familiarizado com as ferramentas de manutenção de contas do OS X, por isso não posso fornecer instruções explícitas para isso. Ajustar os valores do OS X teria a vantagem de você não ter que ajustar UID_MIN no Linux.

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

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

EDITAR: Se você quiser alterar seu UID (e GID, se desejar) no macOS / OS X em vez de no Ubuntu, você pode fazê-lo. Como esta modificação no macOS está além do escopo deste site, vou apenas ligar para algumas páginas que fornecem procedimentos para fazer isso no macOS:

por Rod Smith 02.07.2013 / 00:14
0

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

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

UMA NOTA: usar a segunda opção também abrirá o seu computador para permitir o acesso à pasta de sua escolha pela internet (somente quando inicializado no os x) !! Faça o compartilhamento você tem uma senha segura e que você provavelmente desabilite isso em lugares públicos (não esqueça de pegar seu chapéu de papel alumínio!)

    
por aChipmunk 01.07.2013 / 19:30
0

Abra um terminal e:

No OS X, tente isto

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 774 ou mesmo 770 para permissões de arquivo.

    
por edwin 01.07.2013 / 19:06