Comandos chattr e lsattr


chattr

O chattr troca os atributos de um arquivo/diretório no linux. Este comando usa atributos e não permissão como o chmod.
Através dele os atributos passam a ser extensões que proíbem que o arquivo/diretório seja alterado, removido e renomeado, esses atributos pode ser atribuídos para o dono do arquivo e até mesmo para o root.

Sintaxe

chattr [ -RV ] [ -v version ] [ mode ] files…
A opção -R é para ser recursivo e -V de Verbose. A opção -v mostra a versão do chattr.

Os atributos a ser usados podem ser +-=[ASacDdIijsTtu]

Descrição das opções:

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

A –> Coloca o atributo no arquivo como acessável, porém não modifica a hora acesso ao arquivo.
a –> Coloca o atributo no arquivo de aberto para “append” somente para escrita. Somente o superusuário pode atribuir ou retirar essa opção.
c –> Coloca o atributo no arquivo de compressão. Antes de salvar o arquivo em disco o arquivo e comprimido.
D –> Usada para diretório. Quando um diretório é modificado as mudanças estão escritas de forma “synchronously” no disco
d –> Coloca o arquivo como não candidato para o apoio quando os programas de dump estão funcionado.
E –> Atributo experimental usado na compressão indicando erro.
I –> Coloca o atributo no arquivo de codigo de arvore, escondendo o mesmo de indexação.
i –> Com esse atributo o arquivo não pode ser deletado, renomeado ou criado link para o arquivo.
u –> Coloca o atributo no arquivo de não deletável.

Exemplos:

Adicionando

vandocouto@gnulinuxbr:/tmp$ ls -l teste.txt
-rw-rw-r-- 1 vandocouto vandocouto 0 2011-11-22 07:49 teste.txt
vandocouto@gnulinuxbr:/tmp$ 

root@gnulinuxbr:/tmp# chattr +i teste.txt
root@gnulinuxbr:/tmp# ls -l teste.txt
-rw-rw-r-- 1 vandocouto vandocouto 0 2011-11-22 07:49 teste.txt
root@gnulinuxbr:/tmp# rm -rf teste.txt
rm: não foi possível remover "teste.txt": Operação não permitida

Removendo

root@gnulinuxbr:/tmp# chattr -i teste.txt
root@gnulinuxbr:/tmp# ls -l teste.txt
-rw-rw-r-- 1 vandocouto vandocouto 0 2011-11-22 07:49 teste.txt
root@gnulinuxbr:/tmp# rm -rf teste.txt

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.

Exemplo:

root@gnulinuxbr:/tmp# touch teste.txt
root@gnulinuxbr:/tmp# chattr +i teste.txt
root@gnulinuxbr:/tmp# lsattr -a teste.txt
----i------------e- teste.txt
root@gnulinuxbr:/tmp#

Fonte: villani