Como alterar o proprietário de um diretório

12

EDITAR : O problema é que a Apple usa permissões para marcar backups e impede que você os modifique (provavelmente um recurso de segurança). Usando chmod -RN <dir> , removi os dados da ACL de todas as pastas com dados importantes e isso permitiu que eu fizesse o proprietário e aplique as permissões apropriadas.

Pergunta original
Eu tenho um backup extremamente grande (> 700 GB) que agora tem as permissões erradas (meu UID foi alterado durante a instalação limpa, longa história) e preciso alterá-las. A opção demorada é percorrer manualmente cada pasta e alterar as permissões, mas isso levará muito tempo.

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 dar rwx permissões somente a mim.

A solução ideal é algum método de usar find para procurar recursivamente pastas correspondentes 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 executar chown Me DirectoryName , obtenho chown: DirectoryName: Operation not permitted .

Tudo que eu acho está relacionado a alterar as permissões de um arquivo e não a um diretório. Talvez eu esteja vendo isso de maneira errada?
Algo me diz que não há como distribuir meu% de coid% e rwx 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 estou executando o Mac), mas essa questão é muito mais sobre como usar o shell, --- , chown , e permissões e quaisquer soluções postadas aqui serão aplicável a qualquer sistema operacional baseado em UNIX. Seria preferível que as soluções publicadas fizessem com que meus backups antigos reaparecessem no Time Machine.

Obrigado a todos que responderam prontamente, mas chmod parece não funcionar nos diretórios por algum motivo. O fato de ser uma imagem de disco chown em uma unidade de rede é relevante? Eu assumi que seria o mesmo que em qualquer unidade externa.

    
por Arc676 13.07.2015 / 08:44

2 respostas

21

Eu posso ter entendido mal. Mas você pode recursivamente usar chmod e chown, por exemplo.

chown -R username:username /path/directory

Para aplicar recursivamente a permissão 700, você pode usar:

chmod -r 700 /path/directory

Claro que o acima é para o Linux, então não tenho certeza se o mac osx é o mesmo.

EDIT: Sim desculpe esqueci de mencionar que você precisa ser root para chown algo, eu apenas assumi que você sabia disso ... meu mal.

    
por 13.07.2015 / 09:08
2

tente como root

 find wherever -type d -name ... -exec chown Me {} \;

onde

  • -type d aplica-se apenas ao diretório
  • -name ... seu regexp
  • -exec chown Me {} \; use o chown em encontrar dir.

você deve ser root para chown.

    
por 13.07.2015 / 09:15