O sufixo @ é exclusivo do Mac OS e é coberto por essa pergunta , então copiei esta parte da minha resposta de lá; isso significa que o arquivo tem atributos estendidos . Você pode usar o utilitário de linha de comando xattr para visualizá-los e modificá-los:
xattr --list filename
xattr --set propname propvalue filename
xattr --delete propname filename
O sufixo + significa que o arquivo tem uma lista de controle de acesso e é comum em qualquer * nix que suporte ACLs. Conceder ls o -e sinalizador mostrará as ACLs associadas após o arquivo, e chmod poderá ser usado para modificá-las. A maior parte disso é da página chmod man:
Você adiciona uma ACL com chmod +a "type:name flag permission,..." e a remove com chmod -a . O argumento para chmod é bastante complicado:
-
tipo é
userougroup, para esclarecer senameestá se referindo a um nome de usuário ou um nome de grupo. Senamenão for ambíguo, você pode omitir o tipo - name é o nome de usuário ou grupo que a ACL aplica a
-
A bandeira é
allowse essa entrada da ACL estiver concedendo uma permissão oudenyse estiver negando uma permissão -
permissão é a permissão real que está sendo modificada; você pode listar quantas quiser, separadas por vírgula
- delete - Permite que o arquivo / diretório seja excluído
- readattr - Leia os atributos básicos
- writeattr - Escreva atributos básicos
-
readextattr - Leia atributos estendidos (usando
xattr, de cima) - writeextattr - Gravar atributos estendidos
- readsecurity - Leia as informações da ACL
- writesecurity - Gravar informações da ACL
- chown - Alterar proprietário
- Permissões específicas do diretório
- list - Mostra os arquivos / pastas no diretório
- search - Encontre um arquivo / pasta no diretório pelo nome
- add_file - Cria um novo arquivo no diretório
- add_subdirectory - Cria um novo diretório no diretório
- delete_child - Remove um arquivo / diretório no diretório
- Controle de herança
- file_inherit - as ACLs no diretório são herdadas por arquivos
- directory_inherit - as ACLs no diretório são herdadas por subdiretórios
- limit_inherit - Impede que as ACLs herdadas por esse diretório sejam herdadas por subdiretórios
- only_inherit - Herdado por todos os itens recém-criados, mas ignorado
- Permissões específicas do arquivo
- read - Abra o arquivo para ler
- write - Abra o arquivo para escrever
- acrescentar - Abra o arquivo para anexar
- execute - Execute o arquivo
No seu exemplo específico, a maioria das entradas da ACL é group:everyone deny delete . Ou seja, todos os usuários no grupo everyone (que é naturalmente todo mundo) não têm permissão para excluir a pasta. Eu acredito, embora eu não possa encontrar nenhuma documentação sobre isso, que estas são as ACLs padrão para impedir que você remova as pastas raiz essenciais - alguém corrija isso se não for o caso. A única outra entrada é group:com.apple.sharepoint.group.3 allow search , que permite que os Serviços de Diretório pesquisem arquivos por nome na pasta /Library