O problema aqui é que o Finder implementa o tratamento especial de arquivos restaurados do Time Machine para preservar todas as suas permissões, que falharam em arquivos pertencentes à conta do usuário atual, mas não em um grupo do qual ele é membro.
Geralmente, ao copiar arquivos usando cp
, seus atributos não são retidos. Isso pode ser alterado usando a opção -p
.
-p Cause cp to preserve the following attributes of each source file in the copy: modification time, access time, file flags, file mode, user ID, and group ID, as allowed by permissions. Access Control Lists (ACLs) and Extended Attributes (EAs), including resource forks, will also be preserved.
Em ambos os casos, você copia todos ou nenhum ou esses metadados. cp
é inteligente o suficiente para restaurá-los somente depois que todos os arquivos contidos tiverem sido processados ([ source , veja perto de If -p is in effect, set all the attributes
).
Se você não tiver permissões de root, a propriedade não será retida. A razão para isso é que somente o root pode criar arquivos pertencentes a usuários e não a ele e a grupos dos quais ele não é membro.
Para tornar os backups do Time Machine visíveis, mas imutáveis no Finder, eles são protegidos por listas de controle de acesso que negam a todos os usuários todas as permissões de modificação.
0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
Como outros atributos (outras ACLs, atributos estendidos, datas de arquivos e permissões) devem ser mantidos durante a restauração do backup, o tratamento especial dessas pastas é necessário no Finder. Ele deve remover uma entrada específica da ACL, mas reter todo o resto.
Além disso, a Apple aparentemente quer que o Finder retenha todas as informações de propriedade ao copiar arquivos e diretórios do backup. Isso inclui os membros do grupo .
Se a sua conta não for a proprietária dos diretórios em questão, o Finder solicita uma senha de administrador e transfere a cópia para o programa auxiliar de privilégios elevados Locum . Isso não acontece quando você é o proprietário de um arquivo no conjunto de backup.
Agora, um dos seguintes casos acontece:
- Você não é <<> o proprietário do arquivo: o Finder solicita sua senha, o Locum restaura todas as permissões como no backup.
- Você é o proprietário e um membro do grupo do arquivo: o Finder copia o arquivo e restaura o grupo.
- Você é o proprietário mas não membro do grupo do arquivo: o Finder copia o arquivo e não restaura o grupo.
É como se estivesse tentando chown username:groupname
do arquivo e imprime um erro se falhar - o que acontece se você não for root
( sudo
) nem username
e membro groupname
.
Ela se comporta de maneira ligeiramente diferente se você não estiver copiando pastas, mas arquivos: Embora a propriedade do arquivo seja mantida, a associação ao grupo será descartada se você não for um membro do grupo. Isto é o que você viu quando copiou apenas um único arquivo.
As soluções óbvias para este problema:
- Impeça que propriedades de arquivos causem falha na restauração (ou seja, que seja de sua propriedade e de um grupo que você não é ) - na maioria das vezes, isso não é útil de qualquer maneira
- Torne-se membro desse grupo específico, pelo menos temporariamente. Infelizmente, não consegui fazer isso usando
dscl
da linha de comando de uma maneira que teve um efeito sem sair ou reiniciar. Outro efeito colateral é que, comwheel
, você pode ter problemas com permissões, dependendo da configuração do seu sistema.