Sc4r3cr0w
(usa Slackware)
Enviado em 13/05/2015 - 16:08h
Boa tarde.
Preciso bloquear os usuários que nunca logaram nos servidores e que tenham conta local dentro de cada server. Para isso tentei criar um script basico ( Pois tem somente 2 semanas que mexo ), e gostaria de uma ajuda de vocês ou opnião para melhorar o script.
Criei um script que faz a seguinte função:
Envia um txt com os usuários de aplicações que não podem ser removidos ao servidor que o script conecta. (Server.lst).
Entra em cada servidor da lista do Servers.lst, le os usuários do passwd, separa eles em um txt e em cada nome dentro do txt vou usar o comando finger para descobrir qual usuario nunca logou e a saída do resultado me da os logins que não logaram em um novo txt.
Em seguida uso o comando sort | uniq para colocar em ordem os nomes e tiro repetições de logins caso exista e cria um novo txt no output do comando.
Faço uma comparaçao usando comando diff do txt gerado sem logins repetidos com o txt que enviei dos usuarios de aplicações e tenho somente o resultado dos logins que não são de aplicaçao, gerando um novo txt que tem somente usuários fisicos.
E por fim esta lista de usuários físicos uso o comando usermod -L para bloquear cada um deles jogando o output no servidor local onde iniciei meu script.
Segue o código
Obrigado pela ajuda.. Sou novo em shell script mas to dando sangue rsss
#!/bin/bash
for x in `cat Servers.lst`; do
system_operation=`ssh $x \"uname\"`
if [ "$system_operation" = "Linux" ] ; then
mkdir ./$x
scp ./sysuser.txt root@$x:/tmp/sysuser.txt
ssh $x "cat /etc/passwd | cut -d: -f1 | sort | uniq >> /tmp/passwd.txt"
for y in `ssh $x "cat /tmp/passwd.txt"`; do
ssh $x "finger $y | egrep \"Login|Never\" | cut -d' ' -f2 | sed -n 1p >> /tmp/filter.txt"
done
ssh $x "cat /tmp/filter.txt | sort | uniq >> /tmp/never.txt"
ssh $x "diff /tmp/never.txt /tmp/sysuser.txt | cut -d' ' -f2 >> /tmp/locks.txt"
for z in `ssh $x "cat /tmp/locks.txt"`; do
echo "usermod -L $z" >> ./$x/lockeds.txt
done
ssh $x "rm /tmp/passwd.txt"
ssh $x "rm /tmp/filter.txt"
ssh $x "rm /tmp/never.txt"
ssh $x "rm /tmp/sysuser.txt"
ssh $x "rm /tmp/locks.txt"
fi
done