Eu tenho duas máquinas, um Mac e um PC executando Linux, que estou tentando manter um determinado arquivo sincronizado entre o uso do Dropbox.
Um dos arquivos que estou sincronizando precisa ser gravável por outro usuário (UID diferente na mesma máquina, sem se referir a outro usuário da caixa de depósito) além de mim. Para ser mais específico, esse outro UID é realmente um daemon. Portanto, o arquivo precisa pertencer a esse outro usuário ou então é necessária permissão de gravação para "group" e / ou "other". Inicialmente, configurei dessa maneira nas duas máquinas. Além disso, o diretório que contém o arquivo já pertence (chmod 777) ao usuário que precisa ter acesso de gravação ao arquivo.
No entanto, sempre que o arquivo é sincronizado de uma caixa para outra, parece que o Dropbox ignora completamente os dois conjuntos de permissões e altera as permissões no arquivo recém-atualizado que pertencer a mim com as permissões 0644 (rw para mim, r para todos os outros) ) Se o arquivo não é de minha propriedade, ele muda de propriedade para mim mesmo! Como resultado, o outro usuário não tem mais permissões de gravação até eu manualmente entrar e re-chmod o arquivo.
Tentei coisas adicionais que não funcionaram:
certificou-se de que a conta do usuário (para o "outro usuário") nas duas máquinas tenha o mesmo UID. Não sei por que isso seria necessário, pois minha conta principal não tem o mesmo UID em ambas as máquinas.
chmod u+s <dir>
echmod g+s <dir>
onde está o diretório que contém o arquivo em questão.alterando a propriedade do arquivo para o outro usuário e colocando-o fora do diretório do Dropbox e criando um link simbólico para o arquivo no diretório do Dropbox. O Dropbox na verdade exclui o link simbólico, mantém o arquivo original (fora do diretório Dropbox) inalterado e cria uma nova cópia do arquivo onde o link simbólico costumava estar!
Como posso configurar as coisas para que minhas permissões e / ou propriedade sejam preservadas?
fonte
PAR=$(dirname $(readlink -f $0)) OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH LD_LIBRARY_PATH=$PAR${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH exec $PAR/dropbox $@
e está localizado na ./.dropbox-dist/ e é gerido através do script python fornecidoColoque esse arquivo em sua própria pasta e compartilhe-a com o outro usuário. Dessa forma, eles estão editando a versão mais recente como você. Cuidado para não trabalhar ao mesmo tempo.
fonte
Se você copiar um arquivo entre dois computadores, o software que faz a cópia decide quais são as permissões na cópia. Para o que você está fazendo, você precisa de um mapeamento de permissão detalhado. Os recursos de mapeamento de permissão do Dropbox são limitados à preservação de permissões se ambos os sistemas executam o mesmo sistema operacional . Não são garantidos resultados específicos para copiar entre dois sistemas operacionais diferentes.
Mesmo que você possa descobrir uma maneira de usar o Dropbox da maneira que quiser, eu aconselho a não confiar nele. Peculiaridades de software não documentadas podem desaparecer sem aviso prévio. Você precisa examinar as ferramentas de transferência de arquivos projetadas com o seu caso de uso em mente. Minha primeira opção seria o rsync , que é padrão nas distribuições Linux e fácil de instalar no Windows, especialmente se você tiver o Cygwin . E Cygwin é geralmente útil para pessoas que precisam trabalhar com Windows e Linux!
Obviamente, o rsync requer uma conexão direta - não há servidor central como o Dropbox. Como você lida com isso depende dos detalhes da sua configuração de rede.
fonte