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.
fonte
root_squash
ativado, para que você não possa executar operações somente raiz, comochown
no cliente.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?Respostas:
Eu posso ter entendido errado. Mas você pode usar recursivamente chmod e chown, por exemplo.
Para aplicar recursivamente a permissão 700, você pode usar:
É claro que o acima é para Linux, portanto, não tenho certeza se o mac osx é o mesmo.
Edição: Sim, esqueci de mencionar que você precisa estar enraizado para mostrar alguma coisa, eu apenas assumi que você sabia disso ... meu mal.
fonte
sudo
, entãosudo chmod
(você será solicitado a fornecer uma senha com acesso de Administrador).tente como root
Onde
-type d
aplicar somente ao diretório-name ...
seu regexp-exec chown Me {} \;
use chown em encontrar dir.você deve ser raiz para mostrar.
fonte