[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Primeiro script
From: |
drozzinipires |
Subject: |
Primeiro script |
Date: |
Thu, 15 Jul 2004 15:30:32 -0000 |
User-agent: |
eGroups-EW/0.82 |
Acabei de montar meu primeiro script, ele é para trocar trocar os
usuários do sistema de "nome" para "nome.sobrenome".
Tenho 2 duvidas !!
1ª)Apenas no arquivo assing do qmail, eu vou precisar de fazer 2
alterações por usuario, como eu passaria isso para o 'sed'
2ª)Para alterar esses arquivos eu teria que modificar as permissões
deles ??
E não querendo abusar... ai está o script, caso alguem puder dar uma
olhada nele e ver se tem algo de errado eu agradeço !!!
#!/bin/bash
#Alteracao dos usuarios nos arquivos passwd,shadow, squid_passwd
#funcao para alterar os arquivos
altera() {
#Faz a alteracao do usuario antigo para o usuario novo e
grava a alteracao no arquivo temporario
cat $1 | sed "0,/$3/ s/$3/$4/g" > $2
#Mostra qual a diferenca entre o arquivo original e o arquivo
temporario
diff $1 $2
#Pergunta se deseja realizar a alteracao, e espera pelo(s)im
ou (n)ao
echo -n "DESEJA ALTERAR ? "
read OPCAO
case $OPCAO in
#Caso seja sim, ele faz uma copia do arquivo para um
arquivo no mesmo diretorio e de mesmo nome,
#mas com a extensão .bkp
#depois substitui o arquivo original pelo arquivo
temporario e manda um aviso falando que foi alterado
s) cp $1 $1.bkp
mv $2 $1
echo "ALTERADO !"
;;
#sai do script e retorna o valor 0
n) exit 0 ;;
esac
}
#Path do passwd
CAM_PASSWD=/etc/passwd
#Path do shadow
CAM_SHADOW=/etc/shadow
#Path do squid_passwd
CAM_SQUIDPASSWD=/etc/squid/squid_passwd
#Path para lista de usuários do qmail
CAM_QMAIL=/var/qmail/users/assing
#Path para o arquivo temporario
ARQUIVOTMP=/tmp/temp.tmp
#Condicao para iniciar o laco, sempre sera verdadeiro
CONDICAO=0
while [ $CONDICAO -eq 0 ]
do
#Solicita o nome do usuario, e grava na variavel USUARIO
echo -n "Nome do usuario: "
read USUARIO
#Procura pelo nome do usuario nos arquivos: passwd, shadow,
squid_passwd
echo -n "Passwd: "
cat $CAM_PASSWD | grep -i $USUARIO
echo -n "Shadow: "
cat $CAM_SHADOW | grep -i $USUARIO
echo -n "Squid_passwd: "
cat $CAM_SQUIDPASSWD | grep -i $USUARIO
#Solicita o nome para qual sera alterado, e grava na variavel
NOVOUSUARIO
echo -n "Novo nome do usuario: "
read NOVOUSUARIO
#chama funcao para altera passwd
altera $CAM_PASSWD $ARQUIVOTMP $USUARIO $NOVOUSUARIO
#chama funcao para altera shadow
altera $CAM_SHADOW $ARQUIVOTMP $USUARIO $NOVOUSUARIO
#chama funcao para altera squid_passwd
altera $CAM_SQUIDPASSWD $ARQUIVOTMP $USUARIO $NOVOUSUARIO
#altera no arquivo assing
#Faz a alteracao do usuario antigo para o usuario novo e
grava a alteracao no arquivo temporario
cat $CAM_QMAIL | sed "???????? s/$USUARIO/$NOVOUSUARIO/g" >
$ARQUIVOTMP
#Mostra qual a diferenca entre o arquivo original e o arquivo
temporario
diff $CAM_QMAIL $USUARIO
#Pergunta se deseja realizar a alteracao, e espera pelo(s)im
ou (n)ao
echo -n "DESEJA ALTERAR ? "
read OPCAO
case $OPCAO in
#Caso seja sim, ele faz uma copia do arquivo para um
arquivo no mesmo diretorio e de mesmo nome,
#mas com a extensão .bkp
#depois substitui o arquivo original pelo arquivo
temporario e manda um aviso falando que foi alterado
s) cp $CAM_QMAIL $CAM_QMAIL.bkp
mv $ARQUIVOTMP $CAM_QMAIL
echo "ALTERADO !"
qmail -newu
;;
#sai do script e retorna o valor 0
n) exit 0 ;;
esac
done
- Primeiro script,
drozzinipires <=