Script JULIO FAIS 2.0 - Configurações do LInux - copie esta e a próxima publicação e cole em um arquivo de texto e torne-o executavel


#!/bin/sh
#ultima edição:15/09/2010 11:06 julio.tecnico@bol.com.br
clear
echo "







                            Júlio César Fais
   Script Versão 2.0"
sleep 1
echo "



Verificando suas Permissões...."
sleep 1
if [ `whoami` = "root" ]; then
sleep 1
  else
clear
echo "





   Acesso Negado  para usuario `whoami`! Logue-se como root"
sleep 5
clear
exit
fi
clear

echo '


     |--------------------------------------------------------------------
     |  O QUE DESEJA FAZER?                                        
     |                                                      
     | 1  - ADICIONAR DNS PADRAO                              
     | 2  - CONFIGURAR PERMISSÕES - /etc/sudoers            
     | 3  - CONFIGURAR REDE                                        
     | 4  - INSTALAR JAVA                                            
     | 5  - INSTALAR FLASH PLAYER                                  
     | 6  - HABILITAR ACESSO REMOTO - SSH e VNC                    
     | 7  - INSTALAR PACOTES .DEB (Broffice,etc...)                
     | 8  - BACKUP DE CONFIGURAÇÃO                                
     | 9  - VERIFICAR CONFLITO DE IP                              
     | 10 - INFORMAÇÕES DO SISTEMA                                  
     | 11 - CLONAR HD                                            
     | 12 - APAGAR REGISTROS DE PLACAS DE REDES ANTERIORES          
     | 13 - COMPARTILHAR CONEXÃO                                    
     | 14 - AJUSTAR DATA/HORA                                      
     | 15 - MONTAR PARTIÇÃO                                          
     | 16 - ALTERAR HOSTNAME                                          
     | 17 - SAIR                                                      
     |                                                                
     |               DEPENDÊNCIAS: ZENITY,AIRPING,DD                  
     |                        EXECUTE $xhost +                        
     |-------------------------------------------------------------------|'

read alternativa
case "$alternativa" in

#######################################################

1 ) clear

echo "=> Copiando Para o arquivo /etc/resolv.conf"
sleep 1
echo "nameserver 208.67.222.222" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo "#configurado via script => JULIO 2.0<= julio.tecnico@bol.com.br" >> /etc/resolv.conf
clear
echo "DNS Configurado !"
cat /etc/resolv.conf
sleep 3

clear
;;


########################################################
2 ) clear
echo "Aguarde ...."
sleep 1
clear
`zenity --warning --text "ATENÇAO ESTA AÇAO DARA PODER DE ROOT AO USUARIO!!!" --title "AVISO DO JULIO!!!"`
echo 'Para Qual usuario voce quer Habilitar o sudo?
Ex.: kurumin, prefeitura '
sleep 1
read sudo
echo "Adicionado usuario a /etc/sudoers."
sleep 1
echo "$sudo ALL=(ALL) ALL" >> /etc/sudoers
echo "$sudo ALL=NOPASSWD: ALL" >> /etc/sudoers
sleep 2
clear
echo "Concluido! O Usuario $sudo ja possui permissao de Administrador."
sleep 2
clear

;;
#
#########################################################################################

3 ) clear
echo "Aguarde...Vericando os IP's ja configurados:"
grep "address" /etc/network/interfaces > /tmp/tmp.txt
cat /tmp/tmp.txt
sleep 3
clear
# cat /etc/network/interfaces
# sleep 4
clear
#################
inicio (){
echo 1 - IP Fixo
echo 2 - DHCP
echo 3 - RESTAURAR BKP
echo 4 - IP TEMPORARIO
read var

case $var in
1) fixo;;
2) dhcp;;
3) bkp;;
4) temp;;
*) clear; echo 'saindo do programa'; exit;;
esac
}
##################
fixo (){
echo vc escolheu IP Fixo
`zenity --warning --text "ATENÇAO ESTA AÇAO IRA SOBRESCREVER O ARQUIVO ORIGINAL!!!" --title "AVISO DO JULIO!!!"`
sleep 1
clear
echo 'Adicione suas interfaces...
Ex.: eth0 eth0:0 eth0:1 eth0:2...
obs.: use a 1ª interface para internet...'
sleep 2
read int
echo "Qual Ip da 1ª interface?"
read ipa
echo "Qual a Mascara da 1ª inetrface?"
read masc
echo "Qual o Gateway da 1ª interface?"
read gw
sleep 1
echo "auto lo $int" > /etc/network/interfaces
echo "iface lo inet loopback" >> /etc/network/interfaces
echo "iface $int inet static" >> /etc/network/interfaces
echo "address $ipa" >> /etc/network/interfaces
echo "netmask $masc" >> /etc/network/interfaces
echo "gateway $gw" >> /etc/network/interfaces
echo "#configurado via script => JULIO 2.0<= julio.tecnico@bol.com.br" >> /etc/network/interfaces

clear
/etc/init.d/networking stop
/etc/init.d/networking start
echo "! Pronto. Sua Rede Foi Configurada com sucesso."
sleep 4
}
##################
dhcp (){
`zenity --warning --text "ATENÇAO ESTA AÇAO IRA SOBRESCREVER O ARQUIVO ORIGINAL!!!" --title "AVISO DO JULIO!!!"`
echo vc escolheu IP por DHCP
sleep 2
clear
echo 'Adicione sua interface...
Ex.: eth0, eth1, wlan0...'
sleep 1
read int
echo "auto lo $int" > /etc/network/interfaces
echo "iface lo inet loopback" >> /etc/network/interfaces
echo "iface $int inet dhcp" >> /etc/network/interfaces
echo "#configurado via script => JULIO <= julio.tecnico@bol.com.br" >> /etc/network/interfaces
echo "Configurando...Aguarde..."
sleep 2
clear
/etc/init.d/networking stop
/etc/init.d/networking start
echo "! Pronto. Sua Rede DHCP Foi Configurada com sucesso. Veja:"
sleep 4

cat /etc/network/interfaces
sleep 5
clear

}
###################
bkp (){
`zenity --warning --text "ATENÇAO ESTA AÇAO IRA SOBRESCREVER O ARQUIVO ORIGINAL!!!" --title "AVISO DO JULIO!!!"`
echo 'Qual o Arquivo?'
b=`zenity --file-selection --title "Escolha o arquivo(interfaces)"`
sleep 2
cp "$b" /etc/network/
clear
echo "Reiniciando a Rede..."
sleep 1
/etc/init.d/networking stop
/etc/init.d/networking start
clear
echo "OK!"
sleep 2

}
####################

      temp (){

echo "Qual a interface?"
sleep 2
read dd
echo "Qual o ip?"
sleep 2
read aa
echo "Qual a Mascara?"
sleep 2
read bb
echo "Qual o Gateway?"
sleep 2
read cc

ifconfig $dd $aa netmask $bb up
route add default gw $cc

}
  inicio

clear
;;



###########################################################################################
4 ) clear
java=`zenity --file-selection --title "Escolha o JAVA"`
sleep 1
clear
echo "Siga as instruçoes..."
sleep 2
sudo $java
sleep 6
clear
                      
echo "O JAVA foi instalado Corretamente"
sleep 2
echo "Vamos adicionar um link pro navegador..."
sleep 2
clear
c=`zenity  --directory --file-selection  --title "Escolha a pasta plugins do navegador.Ex.: /usr/lib/firefox-3.6.7/plugins/"`

d=`zenity  --file-selection  --title "Escolha o plugin do java (ja instalado)"`

sleep 2

cd $c/
ln -s $d
echo "OK! Tudo Pronto! Vamos Testar"
sleep 2

firefox 'http://www.java.com/pt_BR/download/help/testvm.xml'

clear

;;


#############################################################################################

5 ) clear
echo 'Instalando Flash PLayer agora...
Qual o Caminho do Flash PLayer?'
flash=`zenity --file-selection --title "Escolha o Flash Player (obs.: tem que estar Descompactado)"`
d=`zenity  --directory --file-selection  --title "Escolha a pasta plugins do navegador.Ex.: /usr/lib/firefox-3.6.7/plugins/"`
sleep 2
clear
echo "Copiando Flash Player."
sleep 2
cp -i -r  $flash $d
sleep 2
echo "Reinicie o Navegador ..."
sleep 2
clear

;;
##################################################################
6 ) clear
echo "Habilitando Serviço SSH..."
sleep 2
update-rc.d -f ssh remove
update-rc.d -f ssh defaults
clear
echo "Configure o VNC!"
krfb
sleep 2

clear

;;
#################################################################
7 ) clear
e=`zenity  --directory --file-selection  --title "Escolha a pasta onde estao os arquivos .DEB"`
cd $e/
dpkg -i *.deb
echo "saindo..."
sleep 2

;;
##################################################################
8 )clear

pasta=`zenity --directory --file-selection --title "Escolha a Pasta Para Salvar os Aquivos de Configuração"`
echo "

     Qual o Usuario Esta o Backup"
read userr
clear
echo "



AGUARDE!!!"
scp /etc/network/interfaces $pasta
scp /etc/cups/printers.conf $pasta
scp /home/$userr/.kde/share/config/kopeterc $pasta
scp -r /home/$userr/.mozilla $pasta
scp -r /home/$userr/.mozilla-thunderbird $pasta
scp -r /home/$userr/.thunderbird $pasta
scp -r /home/$userr/.firefox $pasta
scp -r /home/$userr/.mozilla-firefox $pasta
scp -r /home/$userr/.putty $pasta
scp -r /etc/rc.local $pasta                      

konqueror $pasta

clear
;;
##################################################################
9)

   PATH="/bin:/usr/bin:/sbin:/usr/sbin"
INTERFACE="eth0"

which zenity > /dev/null 2>&1
[ $? -ne 0 ] && { echo "zenity: comando não encontrado."; exit 1 ; }
which arping > /dev/null 2>&1
[ $? -ne 0 ] && { echo "arping: comando não encontrado."; exit 1; }

while true
do
   ip=$(zenity --title="Checa Conflito de IP" --entry --text "Endereço IP:")

   [ $? -ne 0 ] && exit $?


   validaIP() {
      local numero_ip=$1

      # Suporte 'built-in' a ER's! legal... =)
      [[ $numero_ip =~ ^[0-9]{2,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] || return 1
    
      local primeiro_octeto segundo_octeto terceiro_octeto quarto_octeto
    
      OLD_IFS=$IFS
      IFS="."
    
      set - $numero_ip
      primeiro_octeto=$1
      segundo_octeto=$2
      terceiro_octeto=$3
      quarto_octeto=$4
    
      IFS=$OLD_IFS
    
      # Checa o 2o octeto especifico de cada faixa
      case $primeiro_octeto in
         10)  [[ $segundo_octeto =~ ^0[0-9][0-9]? ]] && return 1 # Invalida tipos '0x' ou '0xx'
              (( segundo_octeto >= 0 && segundo_octeto <= 255 )) || return 1 ;;
         172) (( segundo_octeto >= 16 && segundo_octeto <= 31 )) || return 1 ;;
         192) (( segundo_octeto == 168 )) || return 1 ;;
         *) return 1
      esac
    
      # Ja que o 3o e 4o octetos sao comuns as tres faixas
      [[ $terceiro_octeto =~ ^0[0-9][0-9]? ]] || [[ $quarto_octeto =~ ^0[0-9][0-9]? ]] && return 1
      (( terceiro_octeto >= 0 && terceiro_octeto <= 255 )) || return 1
      (( quarto_octeto >= 0 && quarto_octeto <= 255 )) || return 1
   }

#   validaIP $ip
#  [ $? -eq 1 ] && { zenity --error --text "Endereço IP inválido!" ; continue ; }

   break
done

ping -c 3 $ip > /dev/null 2>&1
retval=$?

if [ $retval -eq 1 ]
then
   zenity --error --text "$ip\nHost de destino inalcansável!"
   exit 1
fi

arping -D -I $INTERFACE -c 3 $ip > /dev/null 2>&1
retval=$?

if [ $retval -eq 0 ]
then
   zenity --warning --text "$ip\nConflito de IP detectado."
   exit 1
else
   zenity --info --text "$ip\nNenhum problema encontrado."
   exit 0
fi
;;

##################################################################
10 )
clear
 echo "Versão do kernel:"
uname -a
cat /etc/issue
#echo ------------------------------------------------
echo "Os usuários logados:"
who
echo '
'
echo "Hostname:"
uname -n
echo '
'
echo "Memória disponivel:"
free -m
echo '
'
echo "Espaço em disco:"
df

;;
##################################################################
11 ) clear
# Efetua clonagem de discos                          #
# Depende: dd                                        #
######################################################
echo '
---------------------------------
1 ) Clonar HD inteiro;
2 ) Clonar Particao;
3 ) Criar imagem de HD;
4 ) Montar Particao;
5 ) Verificar HD com GParted;
6 ) Sair sem fazer nada;
---------------------------------'
read alternativa
case "$alternativa" in
1 ) echo "Aguarde ..."
sleep 1
echo "=> Verficando unidades de discos agora."
echo " "
sleep 3
clear
echo "Discos encontrados :"
unidade=`fdisk -l | grep Disk`
echo "---------------------------------------------------------------------------------"
echo "=> Veja as unidades, tamanho e ID abaixo:"
echo "$unidade"
echo " "
echo "---------------------------------------------------------------------------------"
fdisk -l | grep Linux
echo "---------------------------------------------------------------------------------"
echo '
OBS.! Para discos inteiros escreva o nome das unidades sem o numero '
echo " "
echo 'Exemplo.:
1 Disco para disco: origem=/dev/sda destino=/dev/sdb'
echo " "
echo "Qual o disco de origem ?"
read origem
echo "Qual o disco de destino ?"
read destino
echo " "
sleep 3
clear
echo "=> Iniciando a clonagem agora. Seja paciente."
dd if=$origem of=$destino
echo " "
echo -e "\a"
sleep 2
echo -e "\a"
sleep 1
echo -e "\a"
echo "! Pronto. Seu disco foi clonado com sucesso."
sleep 4
clear
;;
#
2 ) echo "Aguarde ...."
sleep 2
clear
echo 'De Particao para Particao:
Ex.: origem=/dev/sda1 destino=/dev/sda-Nº da  particao'
sleep 1
echo "Efetuando clonagem de particao agora. Informe a origem e o destino."
sleep 1
echo "Qual a particao de origem ?"
read porigem
echo "Qual a particao de destino ?"
read pdestino
echo " "
sleep 3
clear
echo "=> Iniciando a clonagem agora. Seja paciente."
dd if=$porigem of=$pdestino
echo " "
echo -e "\a"
sleep 2
echo -e "\a"
sleep 1
echo -e "\a"
echo "! Pronto. Seu particao foi clonada com sucesso."
sleep 4
clear
;;
#
3 ) echo "Aguarde..."
clear
sleep 2
echo "=> Verficando unidades de discos agora."
echo " "
sleep 3
clear
echo "Discos encontrados :"
unidade=`fdisk -l | grep Disk`
echo "---------------------------------------------------------------------------------"
echo "=> Veja as unidades, tamanho e ID abaixo:"
echo "$unidade"
echo " "
echo "---------------------------------------------------------------------------------"
fdisk -l | grep Linux
echo "---------------------------------------------------------------------------------"
sleep 2
echo "Criando imagem de disco agora... Informe a unidade."
sleep 1
echo "Escreva o nome do disco a ser feita a imagem"
read disco
echo "Indique o diretorio onde devo guardar a imagem"
read diretorio
echo "Como gostaria de chamar o arquivo ?"
read arquivo
sleep 2
clear
echo "=> Iniciando a clonagem agora. Seja paciente."
dd if=$disco of=$diretorio/$arquivo.img
echo " "
echo -e "\a"
sleep 2
echo -e "\a"
sleep 1
echo -e "\a"
echo "! Pronto. Sua imagem foi gerada com sucesso."
sleep 4
clear

;;
4 ) echo "Montando agora..."
sleep 1
clear
echo "Qual particao devo montar ?"
read particao
if [ -d "/tmp/PARTICAO/$$" ]; then
echo "Montando "$particao" em /tmp/PARTICAO"
else
echo "Vou criar um diretorio temporario para montagem"
mkdir /tmp/PARTICAO/
echo "Sua particao e de um sistema windows ? sim/nao"
read sistema
if [ "sistema" = "sim" ]; then
mount -t ntfs-3g $particao /tmp/PARTICAO/
else
mount $particao /tmp/PARTICAO/
fi
echo "Sua particao foi montada em /tmp/PARTICAO/"
fi
;;
5 ) echo "Abrindo GParted agora..."
if [ -e "/usr/bin/gparted" ]; then
sleep 2
echo "GParted encontrado. Abrindo agora."
sleep 2
/usr/bin/gparted
else
echo "O Gparted nao foi encontrado..."
fi
;;
6 ) echo "Saindo agora..."
sleep 2
clear
;;
*) echo "Ops.! alternativa errada."
sleep 2
echo "Escolha 1,2,3,4 ou 5"
sleep 4
clear
;;
#
esac





;;

##################################################################
12 ) clear
echo "=> Apagando MAC'S Antigas do arquivo... /etc/udev/rules.d/70-persistent-net.rules"
echo "#configurado via script => JULIO 2.0<=" > /etc/udev/rules.d/70-persistent-net.rules
echo "OK...Reinicie o Micro Para que Possa Reconhecer a(s) Placa(s) de Rede."
sleep 3
;;
##################################################################
13 ) clear
echo "Qual a interface Voce Quer Compartilhar?"
sleep 2
read compartilhar
echo "Quer Manter Fixo Este Compartilhamento? sim/nao"
sleep 2
read sn
sleep 1


if [ $sn = sim ]; then

echo "modprobe iptable_nat" >> /etc/rc.local
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.local
echo "iptables -t nat -A POSTROUTING -o $compartilhar -j MASQUERADE" >> /etc/rc.local
echo "exit 0" >> /etc/rc.local
echo "#configurado via script => JULIO 2.0<=" >> /etc/rc.local
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $compartilhar -j MASQUERADE

sleep 1

else
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $compartilhar -j MASQUERADE
fi
;;
##################################################################
14 ) clear
echo "Que Horas São? Ex.: 1230, HHMM (não Use os 2 Pontos ":")"
read hora
echo "Qual a Dia é Hoje?"
read dia
echo "Qual o Mês?"
read mes
echo "Qual o Ano?"
read ano
date $mes$dia$hora$ano
clear
echo "Data e Hora Ajustadas."
sleep 3
;;
##################################################################
15 ) clear
echo "Será Aberto o Cfdisk"
sleep 2
clear
cfdisk
fdisk -l
echo "Qual Partição Deseja Montar?"
read part
echo "Qual o Formato? ext3,Reiserfs,vfat,ntfs-3g"
read format
mkdir /media/$part
mount -t $format /dev/$part /media/$part
echo "Sua Partição Foi Montada em: /media/$part"
konqueror '/media/'
clear
umount /dev/$part
echo "



   Sua Partição Foi Desmontada."
sleep 2
;;
##################################################################
16) clear
echo "
     Hostname Atual:"
cat /etc/hosts
sleep 2
clear
echo "Qual o Novo Hostname?"
read hostname
echo "127.0.0.1       localhost" > /etc/hosts
echo "127.0.1.1       $hostname" >> /etc/hosts
echo "#configurado via script => JULIO 2.0<= julio.tecnico@bol.com.br" >> /etc/hosts


echo "$hostname" > /etc/hostname
echo "#configurado via script => JULIO 2.0<= julio.tecnico@bol.com.br" >> /etc/hostname
echo "


   Concluído...Hostname Alterado"
sleep 3
;;
##################################################################
17) clear
echo "


     Júlio César Fais
 Good Bye :-] ... Saindo ...
 julio.tecnico@bol.com.br"
sleep 3
clear
;;
##################################################################

*) clear
echo "



   Alternativa errada!
 Escolha Opçoes de 1 a 17."

sleep 4
clear

;;

esac
#compartilhar conexão:
# iptables -F
# iptables -F INPUT
# iptables -F OUTPUT
# iptables -F POSTROUTING -t nat
# iptables -F PREROUTING -t nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -P FORWARD ACCEPT
# iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o ppp0 -j MASQUERADE

Um comentário:

Anônimo disse...

Aulas de linux em fais, seu chefe e obeso e o jacomeli e chato e so coça o rabo