Como forçar permissões personalizadas em arquivos criados pelo comando git checkout?

Como forçar permissões personalizadas em arquivos criados pelo comando git checkout?

Preciso que os arquivos criados por git checkoutcomando tenham permissões personalizadas.

Mesmo com core.sharedrepository=0777a configuração, o git cria arquivos de árvore de trabalho com permissões 0644. Mas quero que seja pelo menos 0664 para que alguém do grupo possa escrever para eles (também seria muito bom especificar um grupo de proprietários personalizado)

Aplicar recursivamente chown/chmod pode funcionar, mas cheira como último recurso e desperdício de recursos.

Responder1

Não use apenas git para gerenciar as permissões de arquivo de uma árvore instalada.

git é usuário único. Ele não rastreia a propriedade e as permissões de arquivos suficientes para proteger um sistema com vários usuários. Mesmo que uma árvore simples core.sharedrepositorycom um usuário seja suficiente para o seu caso de uso, você está tendo dificuldade em fazer o que deseja. Possivelmente ainda está usando o padrão umask?

Considere um formato de arquivo real, seja um sistema de pacotes de software ou um arquivo genérico como tar. Obtenha as permissões corretas nos scripts que geram os arquivos.

Ou executar um script de correção de permissões não é tão ruim assim. Se desejar, verifique as permissões antes de alterá-las, para evitar alterações desnecessárias nos metadados do arquivo.


Consideração não relacionada: se esta árvore for atualizada, esteja ciente de que o git não sincroniza arquivos, ele mescla históricos. Entenderestas regras de implantação do gitpara entender por que o script git pullprovavelmente está errado.

informação relacionada