Comandos chattr e lsattr

Publicado por Thiago Villani em 28/08/2008

[ Hits: 65.082 ]

 


Comandos chattr e lsattr



Os comandos chattr e lsattr servem para incrementar segurança no arquivo ou diretório, o comando chattr usa atributos e não permissão como o chmod, esses atributos são extensões que proíbem que o arquivo seja alterado, removido e renomeado, esses atributos pode ser atribuídos para o dono do arquivo e até mesmo para o root. Abaixo será explicado a função de cada comando.

chattr

Esse comando modifica os atributos de arquivos/diretórios

Comando:

chattr [opção] [atributo] [arquivo/diretório]

Onde:

Opções:
  • -R - modifica atributos em subdiretórios.
  • -V - Mostra detalhes sobre a modificação do atributo atributo:
    atributos de arquivo / diretório
    + adiciona atributo
    - remove atributo
    = define o atributo igual especificado

Os atributos são os seguintes:
  • A - Não modifica a hora de acesso ao arquivo (somente em kernel 2.2)
  • a - Append Only, arquivo pode somente ser gravado em modo incrementado, ou seja, pode ser adicionado conteúdo somente no final do arquivo, não pode ser removido ou renomeado.
  • c - Permite compactação nos arquivos especificados de forma transparente.
  • d - Protege para o dump não fazer backup do arquivo.
  • i - Imutáveis. Arquivos Imutáveis não podem ser modificados, gravados, removidos, renomeados. Até mesmo o usuário root com pode máximo não pode alterar.
  • s - É chamado de apagamento seguro, quando eliminado o arquivo é zerado sem possibilidade de recuperação.
  • S - Faz a gravação imediatamente para o arquivo especificado, como sync, ex: igual aos disquetes.
  • u - É marcado como recuperável, quando apagado é salvo uma copia para permitir recuperação.

OBS: Quem utiliza Kernel 2.6 não precisa se preocupar com os atributos, somente os kernel a baixo de 2.6 que precisa de compilação em alguns casos.

Exemplos

Com arquivo:

# chattr +AsdiSu thiagovillani.txt

Ficou assim:

--S-iadA---------- thiagovillani.txt

# chattr -SdA thiagovillani.txt

Ficou assim:

----ia------------ thiagovillani.txt

Com diretório:

# chattr +iAd diretório

Ficou assim:

----i-dA---------- diretório

lsattr

Comando que lista os atributos atribuídos a um arquivo/diretório.

Comando:

lsattr [opção] [arquivo/diretório]

Opções:
  • -a - Lista todos os arquivo, incluindo os ocultos.
  • -d - Lista os atributos de diretórios.
  • -R - Lista um diretório e seus subdiretórios.
  • -v - Mostra versões dos arquivos.

Exemplos:

# lsattr -d diretório

Fica assim:

----i-dA---------- diretório

# lsattr -v thiagovillani.txt

Fica assim:

54 ----ia------------ thiagovillani.txt

# lsattr -dv diretório

Fica assim:

15 ----i-dA---------- diretório/

Exemplo de remoção de um diretório com atributo i adicionado:

# lsattr -d diretório
----i------------- diretório/

Comando com usuário root:

# rm -rfv diretório
rm: cannot remove directory `diretório/': Operação não permitida

OBS: Não deixou remover o diretório mesmo sendo com usuário root.

Outras dicas deste autor

Sincronizar horário no Debian

Leitura recomendada

Serão os Últimos Sabayon Linux?

Sabayon Linux: A distro mais completa e bonita

Montando uma distribuição Linux do zero

Instalando Flash Player para Firefox/Opera/etc na mão

Por que uso o TDE (Trinity Desktop Environment)?

  

Comentários
[1] Comentário enviado por marujo em 17/01/2009 - 09:42h

Uma dúvida... Em:
# lsattr -v thiagovillani.txt

Fica assim:

54 ----ia------------ thiagovillani.txt

O que seria esse número 54?

[2] Comentário enviado por premoli em 21/03/2011 - 11:03h

O meu mostra: ----------------e-, não consigo localizar o significado do e!

[3] Comentário enviado por villani em 21/03/2011 - 14:42h

Boa tarde,

Premoli, pela documentação é o seguinte:

O atributo 'e' indica que o arquivo está usando extensões para mapear os blocos no disco. Não pode ser removida utilizando chattr (1).

Att.

[4] Comentário enviado por mxfera em 15/02/2012 - 23:40h

Muito bom o artigo.

[5] Comentário enviado por elvinhosmetal em 17/01/2013 - 15:39h

Muito bom cara!

[6] Comentário enviado por WDOMICIANO em 15/04/2016 - 08:30h

Bom dia!!
Muito obrigado me ajudou muito essa documentação.

[7] Comentário enviado por josir em 28/02/2017 - 14:27h

Um adendo para adicionar mais informações.

Se você quiser listar apenas os arquivos com um determinado atributo:

lsattr *.odt | grep "\-d"

[8] Comentário enviado por KAKAROTO86 em 23/12/2021 - 12:42h


Eu estou precisando criar uma permissão em uma pasta que fica em /var/spool/monitor/ para que todos conseguissem criar PASTAS e ARQUIVOS, porém não consiga deletar nada, somente criar. Eu executei o comando chattr -R +a /var/spool/monitor/ e não deu certo, porque além deu não consegui criar nada nas pastas já existente, quando uma nova pasta é criada, todos que tem acesso conseguem deletar. Resumindo: Preciso que as subpastas do diretório citado permitam criar pastas e arquivos, porém não permitam deletar nada. Poderiam me ajudar ?





Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts