sábado, 22 de dezembro de 2012

Atributos de arquivo e diretório no Linux

Os sistemas de arquivos da família Second Extended, disponíveis para o sistema operacional Linux, suportam alguns atributos para os arquivos e diretórios. Estes atributos possibilitam um controle no acesso. Por exemplo, alguns controles de:

- não atualizar a hora de acesso
- somente gravação incremental
- imutável
- remoção segura

Dois comandos são usados para listar ou alterar os atributos, respectivamente 'lsattr' e 'chattr'. Alguns atributos só podem ser alterados pelo superusuário. O atributo imutável é um deles. Estes comandos são similares ao comando 'attrib' dos sistemas DOS e Windows.

O comando 'lsattr' lista os atributos do arquivo em um sistema de arquivos Second Extended. Sua sinopse é:

lsattr [opção]... [arquivo]...

As principais opções são:

-R  lista recursivamente os diretórios e seus conteúdos
-a  lista todos os arquivos, incluindo arquivos que começam com '.'
-d  lista os diretórios como arquivos, ao invés de listar seus conteúdos


Exemplo de linha de comando:

# lsattr -R /home/usuario

O comando 'chattr' altera os atributos do arquivo em um sistema de arquivos Second Extended. Sua sinopse é:

chattr [opção]... +-=[acdeijstuADST] arquivo...

A principal opção é:

-R  altera recursivamente os diretórios e seus conteúdos

O operador '+' adiciona o atributo especificado aos atributos existentes no arquivo. O operador '-' remove o atributo e o operador '=' torna o atributo especificado sendo o único no arquivo.

As letras 'acdisuADS' especificam os novos atributos para os arquivos e diretórios:

a - somente gravação incremental
c - compactados
d - sem backup pelo dump
i - imutável
s - remoção segura
u - não removível (recuperável)
A - não atualiza a hora de acesso
D - atualização sincronizada em diretórios
S - atualização sincronizada (não tem efeito em diretórios)


O exemplo a seguir adiciona o atributo imutável, que protege o arquivo contra escrita e remoção:

# chattr +i arquivo

Este último atributo já foi demonstrado em um outro artigo neste blog, em uma dica de proteção de arquivos, veja em: http://dan-scientia.blogspot.com.br/2009/07/protegendo-arquivos-importantes-no.html

2 comentários:

  1. Uma dúvida, e se eu precisar buscar (find) arquivos no diretório home (/home) com o nome exato (-iname) teste.php e atribuir novamente os padrões do arquivo (chattr -AacdiSsu)como seria o comando? Pode me ajudar? Estou fazendo esse: find -iname teste.php -ls -exec chattr -AacdiSsu, mas não funciona.

    Poderia me ajudar?

    ResponderExcluir
    Respostas
    1. Este artigo pode ajudar:

      Usando o comando find com a opção exec

      http://dan-scientia.blogspot.com.br/2010/07/usando-o-comando-find-com-opcao-exec.html

      Excluir