shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Verificar /etc/passwd


From: Fernando Mercês
Subject: Re: [shell-script] Verificar /etc/passwd
Date: Mon, 27 Apr 2015 14:29:51 -0300

Esse value2 não parece estar vindo de lugar algum.

Eu faria assim:

arq=/etc/passwd

while true; do
   crc1=$(cksum $arq)
   sleep 2
   crc2=$(cksum $arq)

   [ "$crc1" = "$crc2" ] || echo "$arq foi modificado!"
done

O script vai testar o arquivo por alterações a cada 2 segundos, utilizando o CRC-32 do arquivo (como no seu exemplo) e o echo vai rodar quando o arquivo for modificado. Aí você adapta pra alertar via e-mail e talz.

Uma opção um pouco mais elegante é usando a inotify [1], talvez direto pelo inotify-tools [2] que já deve estar no repositório da tua distro.

Abraços!

[1] http://www.ibm.com/developerworks/br/library/l-inotify/
[2] https://github.com/rvoicilas/inotify-tools/wiki


Att,

Fernando Mercês
Linux Registered User #432779
www.mentebinaria.com.br
------------------------------------
"Ninguém pode ser escravo de sua identidade; quando surge uma possibilidade de mudança é preciso mudar". (Elliot Gould)

2015-04-27 1:29 GMT-03:00 'Julio C. Neves' address@hidden [shell-script] <address@hidden>:
 

A comparação [ "$value2" = "$value" ] , pode estar ocasionando o erro. O correto seria [ "$value2" -eq "$value" ] .

A 1a. comparação é ascii e nesse caso 01 é diferente de 1. Teste:
[ 01 = 1 ]  && echo iguais || echo diferentes
Em seguida teste:
[ 01 -eq1 ]  && echo iguais || echo diferentes

Em 26/04/2015 22:17, "address@hidden [shell-script]" <address@hidden> escreveu:
 

Boa noite, estou querendo implementar um script para quando houver qualquer modificação no '/ect/passwd' seja disparado um alerta, então busquei algo na Internet e fiz uma pequena alteração, porém, não funcionou.
Tem algo a mais que devo colocar neste script abaixo? Desde já, grato.

#!/bin/bash
cd
value=$(cksum /etc/passwd | awk '{print $1}' )
value2=$(< passwd.cksum)
[ "$value2" = "$value" ] && exit  # everything is okay
#/usr/bin echo "/etc/passwd changed" | /usr/bin/mailx -s '/etc/passwd alert'     address@hidden
echo "/etc/passwd changed" | mailx -s '/etc/passwd alert'  address@hidden
echo "$value2" > passwd.cksum   # prevent redundant error messages





reply via email to

[Prev in Thread] Current Thread [Next in Thread]