Incron - supervisionando sistemas de arquivos

Neste artigo, irei abordar como monitorar alterações em diretórios e arquivos, assim como executar comandos ou
scripts para automatizar alguma tarefa usando o Incron.

[ Hits: 24.404 ]

Por: Perfil removido em 24/01/2012


Arquivos de configuração, símbolos e opções do incrontab



Quando o Incron é instalado via gerenciador de pacotes, é criado dentro do diretório "/etc" alguns arquivos que descreverei abaixo:
  • "/etc/incron.conf": Arquivo de configuração principal do Incron. Contém as configurações padrão para o programa 'incrond'. Cada linha possui um único par de valores na forma 'opção = valor'.
  • "/etc/incron.deny": Arquivo que detém a lista de usuários não autorizados a usar o Incron e ter uma 'incrontab' própria.
  • "/etc/incron.allow": Arquivo que detém a lista de usuários autorizados a usar o Incron e ter uma 'incrontab' própria.
  • "/etc/init.d/incron": Script para iniciar, parar e reiniciar o Daemon 'incrond'.

O arquivo principal de configuração é o "/etc/incron.conf", nele deverá ser colocado o 'path' dos outros arquivos assim como opções gerais de uso da ferramenta.

Abaixo, está listado o conteúdo do arquivo "/etc/incron.conf" traduzido, deixe ele assim ou modifique conforme seu uso:

# *** incron example configuration file ***
# Editado por Edson

# Parameter: system_table_dir
# Meaning: system table directory
# Description: This directory is examined by incrond for system table files.
# Default: /etc/incron.d
# system_table_dir = /var/spool/incron.systables

# Está opção especifica o diretório que conterá
# a tabela de arquivos incrontab de cada usuário
# que tenha autorização de usar o serviço incrond
# e escrever entradas na incrontab, o mesmo será
# examinado pelo incrond.
# Default: /var/spool/incron
   user_table_dir = /var/spool/incron

# Opção usada para especificar o arquivo que será
# usado para manter a lista de usuários autorizados
# a usar o serviço incrond e escrever entradas na
# propria incrontab.
# Default: /etc/incron.allow
   allowed_users = /etc/incron.allow

# Opção usada para especificar o arquivo que será
# usado para manter a lista de usuários não autorizados
# a usar o serviço incrond e escrever entradas na
# propria incrontab.
# Default: /etc/incron.deny
   denied_users = /etc/incron.deny

# Opção usada para especificar o diretório que
# contém o arquivo da opção: lockfile_name.
# Default: /var/run
   lockfile_dir = /var/run

# Está opção é utilizada para especificar o nome do
# arquivo que será utilizado para ter o pid do processo
# impedindo que seja aberta várias instâncias do serviço.
# Default: incrond
   lockfile_name = incrond

# Esta opção é utilizada para especificar qual será o
# editor de texto utilzado para editar a tabela do incrontab.
# Deve ser especificado o nome ou o caminho completo do comando.
   editor = vim


Para permitir o uso do serviço para algum usuário, é só editar o arquivo "/etc/incron.allow" listando os nomes dos usuários ou o arquivo que configurou no "/etc/incron.conf".

É necessário que o 'root' esteja listado no "/etc/incron.allow", caso não esteja, ele será bloqueado e não usará o serviço. Abaixo tem o exemplo:

# vim /etc/incron.allow

root
edson


Neste caso, os usuários 'root' e 'edson', estão podendo escrever entradas na 'incrontab', cada um com sua 'incrontab'.

Símbolos de Eventos

Abaixo, descrevo alguns símbolos de eventos e o que significam:
  • IN_ACCESS: O arquivo foi acessado (lido).
  • IN_ATTRIB: Metadados alterados (permissões, timestamps, atributos estendidos, etc.).
  • IN_CLOSE_WRITE: Arquivo aberto para a escrita foi fechado.
  • IN_CLOSE_NOWRITE: Arquivo não aberto para escrita foi fechado.
  • IN_CREATE: Arquivo ou diretório criado no diretório monitorado.
  • IN_DELETE: Arquivo ou diretório excluído do diretório monitorado.
  • IN_DELETE_SELF: Arquivo ou diretório monitorado foi-se excluído.
  • IN_MODIFY: O arquivo foi modificado.
  • IN_MOVE_SELF: Arquivo ou diretório monitorado foi movido.
  • IN_MOVED_FROM: Arquivo foi movido para fora do diretório monitorado.
  • IN_MOVED_TO: Arquivo foi movido para diretório monitorado.
  • IN_OPEN: Arquivo foi aberto.
  • IN_ALL_EVENTS: símbolo é definido como uma máscara de bits de todos os eventos acima.

- Opções:
  • $$: Cifrão
  • $@: Representa o diretório monitorado.
  • $#: Representa o arquivo que aconteceu o evento.
  • $%: Representa o evento ocorrido sobre o objeto (em modo texto).
  • $&: Representa o evento ocorrido sobre o objeto (em modo numérico).

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Arquivos de configuração, símbolos e opções do incrontab
   3. Usando o incron e escrevendo entradas na incrotab
Outros artigos deste autor

Passos essenciais para configurar sua impressora no Linux

Liberdade, usuários e políticas de manutenção de ignorância

Criando um servidor de impressão para residências e pequenas empresas com Linux

Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop

OSS & ALSA - A História

Leitura recomendada

Transportando dados com segurança - encripte seu pendrive em 5 passos

Checando vulnerabilidades com o Nikto

Os 5 princípios básicos de segurança para empresas

Nikto - Tutorial básico e avançado

Introdução ao ModSecurity

  
Comentários
[1] Comentário enviado por brk0_0 em 05/04/2012 - 01:42h

Extremamente útil, obrigado!

[2] Comentário enviado por removido em 17/05/2012 - 20:25h

Cara muito bom o seu tutorial, procurei no Google por outros tutoriais mas o seu é o melhor, muito bem explicado e extremamente útil

[3] Comentário enviado por AprendiNoLinux em 17/05/2012 - 20:46h

Show de bola ;)
Tentei monitorar alterações no meu desktop mas não consegui. Parece que tem problemas com diretorios com espaço.

[4] Comentário enviado por removido em 17/05/2012 - 22:15h

Boa noite, obrigado pelos comentários.

Colega AprendiNoLinux quando diretórios tem espaços nos nomes, imagino que seja espaço no nome é isso ? nunca tive esse problema.

exemplo se quero monitorar o diretório: /opt/exemplo/teste inicial

a entrada ficaria com o diretório desse jeito:

/opt/exemplo/teste\ inicial IN_MODIFY,IN_CLOSE_WRITE,IN_ATTRIB /local/do/script/meu_script.sh

espero ter ajudado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts