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:
[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 ?