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 é
user
ougroup
, para esclarecer sename
está se referindo a um nome de usuário ou um nome de grupo. Sename
não for ambíguo, você pode omitir o tipo - name é o nome de usuário ou grupo que a ACL aplica a
-
A bandeira é
allow
se essa entrada da ACL estiver concedendo uma permissão oudeny
se 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