EDITAR

EDITAR

Eu uso Linux há muito tempo eaindaestou completamente no escuro sobre como as permissões de arquivo realmente funcionam. Com isso em mente, alguém tem algum livro ou guia completo que eu possa ler para realmente entender as coisas completamente? Já fiz meu quinhão de administração de sistemas, então conheço coisas fáceis, como tornar diretórios legíveis e graváveis, tornar arquivos executáveis ​​​​e alterar o proprietário de um arquivo, mas ao compartilhar arquivos entre usuários, estou perdido.

Aqui está o meu principal problema. Tenho várias máquinas nas quais pretendo sincronizar minha biblioteca de música. Já uso o Unison há algum tempo e é uma ótima escolha, pois posso executá-lo facilmente por SSH na minha rede local que acabei de configurar. Ganha-ganha.

Até agora, sincronizei computadores usando um disco rígido externo de 2 TB. (computador 1 uníssono para HD, computador 2 uníssono para HD, etc.) Isso é, na melhor das hipóteses, tedioso, especialmente porque eu criptografei a unidade, tornando um grande incômodo conectá-la a todas as minhas máquinas e sincronizá-la. De qualquer forma, a unidade está executando ext4 (em TrueCrypt), portanto mantém todas as informações do sistema de arquivos Unix, como proprietários e grupos. Acabei de configurar uma nova máquina e fiz o Unison para colocar a música nela, e percebi que agora todas as minhas permissões são fubar. Tive que executar o Unison como root, pois era a única maneira de fazer com que os arquivos saíssem da unidade externa. Aparentemente, como estou usando um nome de usuário diferente nesta máquina do meu "rfkrocktk" usual em todas as máquinas, isso basicamente causa uma grande mudança nas engrenagens.

Aqui está meu caso de uso. Este laptop possui dois usuários efetivos, "leandra" e "rfkrocktk". Quero compartilhar músicas entre esses dois usuários, então criei um link simbólico para /home/rfkrocktk/Music para apontar para /home/leandra/Music. Como faço para (a) permitir que ambos os usuários acessem para ler/gravar/excluir arquivos nesta pasta e (b) manter tudo bem sincronizado sem atrapalhar a propriedade do arquivo?


EDITAR

Consegui fazer as coisas funcionarem, mas ainda não completamente. Eu configurei o ID do grupo do meu diretório de músicas para o meu grupo media-userse adicionei meu usuário principal rfkrocktke o usuário compartilhado mt-daapdao grupo. Agora, rfkrocktkposso acessar os arquivos perfeitamente, mas mt-daapdnão consigo ver nada no diretório. Aqui estão meus IDs:

$ id rfkrocktk
> uid=1000(rfkrocktk) gid=1000(rfkrocktk) groups=1000(rfkrocktk),4(adm),20(dialout),24(cdrom),29(audio),46(plugdev),104(lpadmin),115(admin),120(sambashare),124(vboxusers),1001(jupiter),2002(media-users)

$ id mt-daapd
> uid=123(mt-daapd) gid=65534(nogroup) groups=65534(nogroup),2002(media-users)

Eu tentei definir mt-daapo ID do grupo principal para o media-usersgrupo, mas isso não muda nada.

Aqui estão minhas permissões no /home/rfkrocktk/Musicdiretório:

drwxr-Sr-- 201 rfkrocktk media-users 12288 2011-01-13 12:26 Music

Correr sudo -i -u mt-daapd ls -l /home/rfkrocktk/Musicnão rende nada. Como posso consertar isso?

Responder1

Eu definiria o proprietário do arquivo como root e o grupo como algo como 'música' e, em seguida, faria com que ambos fossem membros do grupo "música". Então, crie o diretório de músicas setgid(o que significa que os itens criados no diretório herdarão a propriedade do grupo do próprio diretório). Em seguida, defina as permissões de arquivo 0660 e está tudo pronto.

As permissões de arquivo são de usuário, grupo, mundo e geralmente mostradas como um número octal (por exemplo, 0660), onde:

1 - exec 2 - escrever 4 - ler

Eles podem ser adicionados, por exemplo, 0751 significa que o proprietário do arquivo pode ler, escrever e executar; o grupo pode ler e executar; todos os outros podem apenas executar.

Responder2

Os nomes não importam. A propriedade de arquivos e grupos Unix é armazenada no sistema de arquivos e armazenada numericamente, não por nome. Na sua máquina original, abra um terminal como seu usuário normal e diga:

id -u

Isso lhe dará o ID numérico do seu usuário. Ao verificar a propriedade dos arquivos, é feita uma comparação entre o ID do usuário conectado e o ID no sistema de arquivos. Ao exibir o nome do usuário o ID é transformado em texto consultando passwd, resultando no seu nome local.

Em sua nova máquina, execute a mesma etapa acima. O ID é diferente? Se for diferente, então "você" na nova máquina não é o proprietário dos arquivos. Em ambas as máquinas, da mesma forma, se você disser

id -G

Você receberá uma lista de IDs de grupos aos quais seu usuário pertence. O grupo de cada arquivo deve corresponder a um desses IDs ou não pertencerá a você. Você pode obter o usuário e grupo numérico real de um arquivo com ls -nd fileou stat file.

Na maioria dos casos, dois sistemas diferentes não terão os mesmos IDs de usuário. Você pode sincronizá-los manualmente editando passwd, mas será necessário atualizar cuidadosamente todos os arquivos no sistema para converter de quaisquer IDs antigos para novos equivalentes. Sincronizar IDs entre sistemas é uma tarefa complexa com a qual a maioria dos usuários domésticos não se preocupa; é o domínio do LDAP, NIS e outras soluções como essa.

Para resolver seu problema, você desejará fazer com que todos os arquivos pertençam a um ID de grupo que existe em ambos os sistemas, depois certifique-se de que os usuários em ambos os sistemas sejam membros do grupo e, em seguida, conceda acesso de leitura/gravação ( chmod g+rw) a esse grupo .

Responder3

Você pode definir o diretório Music (e todos os seus arquivos e subdiretórios) para ter 775 permissões, para que o proprietário dos arquivos e qualquer pessoa no mesmo grupo possam fazer o que quiserem com os arquivos. Então o próximo truque é criar um novo grupo com o nome que você quiser (por exemplo, compartilhar) e chgrp o diretório Music (e todos os seus arquivos e subdiretórios) para o novo grupo. Agora você só precisa ter certeza de que os usuários aos quais você concede acesso de leitura/gravação aos arquivos compartilhados estão no grupo "compartilhar". Se você precisar fazer isso funcionar com outros computadores, tome cuidado para que o grupo de compartilhamento tenha o mesmo ID numérico em todos os computadores e você ficará bem.

Responder4

Aquié uma explicação das permissões que achei útil. Este, também.

informação relacionada