# Guia do Linux/Iniciante+Intermediário/Comandos diversos/chattr
## chattr

Modifica atributos de arquivos/diretórios. Não confunda atributos de arquivo com permissões de acesso ([ch-perm.html Permissões de acesso a arquivos e diretórios, Capí­tulo 13]), os atributos são diferentes e definem outras caracterí­sticas especiais para os arquivos/diretórios especificados.
chattr [opções] [atributos] [arquivos/diretórios]
Onde:

### arquivos/diretórios

    Arquivos/Diretórios que terão os atributos modificados. Podem ser usados curingas

### -R

    Modifica atributos em subdiretórios

### -V

    Mostra detalhes sobre a modificação de atributos.

### atributos

    Os atributos de arquivos/diretórios podem ser especificados da seguinte maneira:
   * - Adiciona o atributo
   * - - Remove o atributo
   * = - Define o atributo exatamente como especificado
Os atributos são os seguintes:
   * A - Não modifica a hora de acesso de arquivos. Poder aumentar consideravelmente a performance em Notebooks devido a diminuição de I/O no disco rí­gido. Quando especificada em diretórios, faz com que todos os arquivos e subdiretórios residentes nele não tenham a hora de acesso modificada.
Este atributo funciona apenas em kernels 2.2 e superiores
   * a - Append-Only - Arquivos com este atributo podem somente ser gravados em modo incrementais (o conteúdo poderá somente ser adicionado ao final do arquivo). Eles não poderão ser removidos, renomeados e novos links não poderão ser criados para estes arquivos.
Em diretórios faz com que os arquivos sejam apenas adicionados. Somente o root pode especificar ou retirar este atributo.
   * c - Permite compactação nos arquivos especificados de forma transparente para o usuário. Durante a leitura, o kernel retorna dados descompactados e durante a gravação os dados são compactados e gravados no disco.
Este atributo ainda não foi totalmente implementado no código atual do kernel.
   * d - Este atributo não é usado pelo kernel, mas faz com que o programa dump evitar backup dos arquivos marcados com este atributo.
   * i - Imutável - Arquivos imutáveis não podem ser modificados, os dados também não podem ser gravados para estes arquivos, não podem ser removidos, renomeados. Até mesmo o usuário root não poderá modificar estes arquivos.
Em diretórios, faz com que arquivos não possam ser adicionados ou apagados. Somente o usuário root pode especificar ou retirar este atributo.
   * s - O arquivo especificado é marcado como "apagamento seguro"; quando o arquivo é apagado, seus blocos são zerados e gravados de volta no disco (eliminando qualquer possibilidade de recuperação).
   * S - Faz a gravação imediatamente para o arquivo especificado. É como especificar a opção "sync" na montagem do sistema de arquivos ext2, mas afeta somente os arquivos especificados. Não tem efeito em diretórios.
   * u - O arquivo especificado é marcado como recuperável. Quando o arquivo é apagado, seu conteúdo é salvo para permitir futura recuperação.
Este atributo ainda não foi implementado totalmente no código atual do kernel.
Os atributos de arquivos/diretórios são visualizados através do utilitário lsattr. Existem patches para os kernels da série 2.2 que adicionam o suporte experimental aos atributos "c" e "u".
Exemplos:
* chattr AacdiSsu teste.txt - Adiciona todos os atributos
* chattr =ASs teste.txt - Define os atributos para "ASs"
* chattr i -A teste.txt - Retira o atributo "A" e adiciona "i"
* chattr = teste.txt - Retira todos os atributos