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 chown
para me tornar o proprietário de todos os meus dados importantes e, em seguida, usar chmod 700
em todas essas pastas para conceder rwx
permissões apenas para mim.
A solução ideal é um método de usar find
para 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 rwx
e ---
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 chown
que parecem não funcionar nos diretórios por algum motivo. O fato de ser uma .sparsebundle
imagem 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 $USER
deve 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_squash
ativado, para que você não possa executar operações somente raiz, comochown
no cliente.