Como alterar recursivamente o compartilhamento / permissão de uma pasta no Mac OS X


54

Existe alguma ferramenta ou script do Mac OS X que permita alterar recursivamente as propriedades de compartilhamento / permissão de arquivos e subpastas em uma pasta? Por exemplo, para permitir que todos ou um usuário específico possam ler e escrever, somente leitura ou somente gravação.

Respostas:


74

Experimente o comando chmod. Por exemplo, se você tiver um nome de diretório mydir, o comando a seguir ativará a leitura / gravação desse mydir recursivamente.

$ chmod -R +rw mydir

Para maiores informações:

$ man chmod

18
Boa resposta, mau exemplo. Ao adicionar acesso de leitura e / ou gravação a pastas, você também precisa adicionar acesso de execução ("x", também conhecido como pesquisa), ou então o r / w é meio inútil. Por outro lado, geralmente você não deseja adicionar execução aos arquivos. Ao fazer uma alteração recursiva, você está operando em uma mistura de arquivos e pastas. A resposta é usar o recurso "execução inteligente" do chmod (capital X): chmod -R +rwX mydiradicionará execução somente quando fizer sentido.
9789 Gordon Davisson

Gordon: Ótima observação. No entanto, um diretório normalmente tem o x ativado, a menos que o usuário faça algo interessante para desativá-lo.
Hai Vu

11
Depende das permissões iniciais. Se você der uma olhada em uma pasta inicial do Mac com configuração padrão, por exemplo, verá na maioria das pastas (área de trabalho, documentos, biblioteca, etc) que o proprietário tem acesso total (rwx) a tudo, exceto ao grupo e outros não tem acesso (não lê, grava ou executa). Se você estiver adicionando leitura ou gravação para grupo ou outras pessoas a uma dessas pastas, também será necessário adicionar execute.
9789 Gordon Davisson

11
Não funciona para mim, apenas se aplica à pasta principal, não às subpastas.
Delphirules

29

Selecione a pasta raiz com a qual você gostaria de trabalhar e abra o Inspetor (CMD-i ou clique com o botão direito e "Mostrar informações"). O painel inferior é onde você pode gerenciar permissões.

Adicione e remova permissões para a lista lá. Para aplicar as mesmas permissões recursivamente a todas as subpastas, clique na engrenagem e selecione "Aplicar a itens fechados ..."

Nota: Notei que "Aplicar a itens fechados ..." fica acinzentado quando o pequeno ícone de cadeado na parte inferior direita da janela está bloqueado. Se for esse o caso, basta clicar no cadeado para desbloqueá-lo, inserindo suas credenciais e tente novamente com "Aplicar a itens fechados ..."


Embora geralmente seja útil, ele não realiza o que é solicitado. Ele substitui as permissões nos subdiretórios, em vez de, por exemplo, adicionar um usuário a todos eles, independentemente das permissões anteriores.
Daniel Beck

@DanielBeck você está errado, aplica-se todos os elementos de permissões, chmod e chown esta é a maneira correta 'mac' para fazê-lo
Rob

Eu apenas tentei esta resposta (em uma pasta de teste) e ela não funcionou corretamente: como uma pasta normalmente é 'executável', esse bit também foi definido em todos os arquivos fechados, o que está errado. Eu só queria mudar de usuário e grupo.
flow

12

Você deseja usar os comandos chmode chown.

Se bem me lembro, você pode alterar as permissões assim:

chmod -R +a "joshhunt allow read" /some/file/or/folder/
chmod -R +a "Guest deny read" /some/other/folder/
chmod -R +a "Guest deny write" /some/other/folder/

Para mais detalhes sobre esses comandos, consulte suas respectivas páginas de manual no Terminal:

man chmod
man chown

11
Melhor maneira para ao tentar especificar permissões de um usuário específico
megalucio
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.