EDIT : O problema era que a Apple usa permissões para marcar backups e impede que você os modifique (provavelmente um recurso de segurança). Ao usar chmod -RN <dir>, removi os dados da ACL de todas as pastas com dados importantes, o que me permitiu tornar-me o proprietário e aplicar as permissões apropriadas.
Pergunta original
Eu tenho um backup extremamente grande (> 700 GB) que agora possui permissões incorretas (meu UID foi alterado durante a instalação limpa, uma longa história) e preciso alterá-las. A opção demorada é percorrer manualmente cada pasta e alterar as permissões, mas isso levará séculos.
Eu quero usar chownpara me tornar o proprietário de todos os meus dados importantes e, em seguida, usar chmod 700em todas essas pastas para conceder rwxpermissões apenas para mim.
A solução ideal é um método de usar findpara procurar recursivamente pastas que correspondam a um regex (meu atual é .*/[DCV].*|Pictures|M[ou].*) e, em seguida, tornar meu UID o proprietário e definir as permissões para 700.
A parte importante que não consigo entender: no
entanto, quando tento correr chown Me DirectoryName, entendo chown: DirectoryName: Operation not permitted.
Tudo o que encontro está relacionado à alteração das permissões de um arquivo e não de um diretório. Talvez eu esteja vendo isso da maneira errada?
Algo me diz que não há uma maneira de fornecer meu UID rwxe ---para todos os outros.
Como posso conseguir isso? Estou executando o Mac OS X 10.10.3.
Eu sei que este é um fórum UNIX / Linux (e eu estou correndo Mac), mas esta questão é muito mais sobre como usar o shell, chown, chmod, e permissões e quaisquer soluções postado aqui será aplicável a qualquer sistema operacional baseado em UNIX. Seria preferível que as soluções postadas fizessem meus backups mais antigos reaparecerem no Time Machine.
Obrigado a todos que responderam prontamente, mas chownque parecem não funcionar nos diretórios por algum motivo. O fato de ser uma .sparsebundleimagem de disco em uma unidade de rede é relevante? Presumi que seria o mesmo que em qualquer unidade externa.
find . -user $other_uid -print0 | sudo xargs chown $USERdeve funcionar.
df -hT <dirname>deveria te contar.
df -hT <dir> fornece saída para a) o diretório raiz do disco rígido da rede b) a imagem do disco dentro do disco rígido da rede c) qualquer pasta no disco rígido da rede. Talvez o comportamento que você pretendeu seja implementado de maneira diferente no Mac e no Linux?
root_squashativado, para que você não possa executar operações somente raiz, comochownno cliente.