Comandos chattr e lsattr

Publicado por Thiago Villani em 28/08/2008

[ Hits: 65.045 ]

 


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

Criar xorg.conf no Ubuntu 9.10

Fazendo backup de todas as databases do MySQL

Como instalar o BrOffice 2.3 no Debian Etch

Fácil instalação da nVidia no SuSE 10.2

Slackware 11 (current) com KDE e Hald

  

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