Facilitando algumas tarefas no CentOS 7
Publicado por Bruno Ricardo Rodrigues (última atualização em 09/08/2016)
[ Hits: 7.557 ]
Homepage: Não Possuo
Olá pessoal,
Passei as últimas horas me dedicando a criar um script para automatizar/facilitar algumas tarefas que realizo com freqüência no CentOS 7, tais como Firewall, SElinux, hostname, Configuração de interface de rede entre outras. Nada impede de executar o script em outras versões do CentOS ou outras distros, porém até o momento somente testei no CentOS 7.
Como para mim foi e será muito útil, tive a ideia de divulgar aqui no VOL, quem sabe não ajudo mais alguém :)
#!/bin/bash #### DEPENDÊNCIAS #### type dialog 1> /dev/null if [ "$?" = 0 ]; then echo "Dependencias Instaladas..." else echo "Instalando Dependencias!" yum install -y dialog fi #### FUNÇÕES #### sistema_operacional_func() { SO=$(dialog --stdout --title 'Sistema Operacional' --menu 'Escolha seu Sistema Operacional:' 0 0 0 1 'CentOS 7') menu_func } hostname_func() { HostName=$(dialog --stdout --title 'Hostname' --inputbox 'Informe o novo HOSTNAME:' 0 0) [ $? -eq 1 ] && menu_func echo $HostName > /etc/hostname /bin/hostname $HostName dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35 menu_func } interfaces_rede_func() { dinamico() { FILE='/etc/sysconfig/network-scripts/ifcfg-'$INTERFACE cat > $FILE << EOM DEVICE=$i BOOTPROTO=dhcp ONBOOT=yes EOM dialog --title 'Aguarde' --infobox '\nReiniciando interfaces de rede...' 0 0 /etc/init.d/network restart dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35 menu_func } statico() { IP=$( dialog --stdout --inputbox 'Informe o IP:' 0 0 ) [ $? -eq 1 ] && interfaces_rede_func MASK=$( dialog --stdout --inputbox 'Informe a Máscara:' 0 0 ) [ $? -eq 1 ] && interfaces_rede_func GATEWAY=$( dialog --stdout --inputbox 'Informe o Gateway:' 0 0 ) [ $? -eq 1 ] && interfaces_rede_func DNS1=$( dialog --stdout --inputbox 'Informe o DNS Primário:' 0 0 ) [ $? -eq 1 ] && interfaces_rede_func DNS2=$( dialog --stdout --inputbox 'Informe o DNS Secundário:' 0 0 ) [ $? -eq 1 ] && interfaces_rede_func dialog --title 'Informações de Rede' --yesno '\nIPADDR='$IP'\nNETMASK='$MASK'\nGATEWAY='$GATEWAY'\nDNS Primário='$DNS1'\nDNS Secundario='$DNS2'\n\nAs informações estão corretas?' 0 0 [ $? -eq 1 ] && interfaces_rede_func FILE='/etc/sysconfig/network-scripts/ifcfg-'$INTERFACE cat > $FILE << EOM DEVICE=$INTERFACE TYPE=Ethernet IPADDR=$IP NETMASK=$MASK GATEWAY=$GATEWAY ONBOOT=yes EOM echo "nameserver $DNS1" > /etc/resolv.conf echo "nameserver $DNS2" >> /etc/resolv.conf dialog --title 'Aguarde' --infobox '\nReiniciando interfaces de rede...' 0 0 /etc/init.d/network restart dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35 menu_func } INTERFACES=`ip a | grep \< | cut -d ':' -f 2` COMANDO="dialog --stdout --title 'Interfaces de Rede' --menu 'Selecione a interface a ser editada: ' 0 0 0 " for i in $INTERFACES do if [ "$i" != "lo" ]; then COMANDO=$COMANDO"'$i' '' " fi done INTERFACE=$(eval $COMANDO) [ $? -eq 1 ] && menu_func RESPOSTA=$(dialog --stdout --title 'Modo de Operação' --menu 'Selecione o modo de operação ' 0 40 0 \ 1 'Static' \ 2 'Dinâmico') case $RESPOSTA in 1) statico ;; 2) dinamico ;; *) interfaces_rede_func ;; esac } nome_interfaces() { INTERFACES=`ip a | grep \< | cut -d ':' -f 2` sed -i 's/rhgb quiet/rhgb quiet net.ifnames=0 biosdevname=0/' /etc/default/grub grub2-mkconfig -o /boot/grub2/grub.cfg INT=0 for i in $INTERFACES do if [ "$i" != "lo" ]; then sed -i "s/$i/eth$INT/g" /etc/sysconfig/network-scripts/ifcfg-$i mv /etc/sysconfig/network-scripts/ifcfg-$i /etc/sysconfig/network-scripts/ifcfg-eth$INT INT=`expr $INT + 1` fi done dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso! NÃO ESQUEÇA DE REINICIAR AO SAIR!' 5 70 } firewall_func() { limpa_regra_func() { iptables -F iptables -X iptables -t nat -F iptables -t nat -X } inicializacao_func() { limpa_regra_func cat > /etc/init.d/firewall.sh << EOM #!/bin/bash iptables -F iptables -X iptables -t nat -F iptables -t nat -X EOM chmod +x /etc/init.d/firewall.sh chmod +x /etc/rc.d/rc.local echo "/etc/init.d/firewall.sh" >> /etc/rc.d/rc.local } MENU=$(dialog --stdout --title 'Firewall' --menu 'Selecione uma opção:' 0 0 0 \ 1 'Limpar regras de Fiewall' \ 2 'Adicionar script para limpar regras de Firewall na inicialização do sistema' \ 3 'Voltar ao Menu Anterior') case $MENU in 1) limpa_regra_func ;; 2) inicializacao_func ;; 3) menu_func ;; *) menu_func ;; esac dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35 firewall_func } selinux_func() { MODO_ATUAL=`cat /etc/selinux/config | grep ^SELINUX= | cut -d '=' -f 2` echo $MODO_ATUAL MENU=$(dialog --stdout --title 'Menu' --menu 'Modo Atual: '$MODO_ATUAL'\nNovo Modo:' 0 0 0 \ 1 'Disabled (Necessário Reiniciar)' \ 2 'Permissive' \ 3 'Enforcing (Necessário Reiniciar)' \ 4 'Voltar ao Menu Anterior') case $MENU in 1) sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config ;; 2) sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config; setenforce 0 ;; 3) sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config ;; 4) menu_func ;; *) menu_func ;; esac dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35 menu_func } exit_func() { dialog --title 'Reiniciar' --yesno '\nVocê deseja reiniciar o sistema operacional?' 0 0 if [ $? -eq 1 ]; then clear exit else shutdown -r now fi } menu_func() { MENU=$(dialog --stdout --title 'Menu' --menu 'Selecione uma opção:' 0 0 0 \ 1 'Alterar Hostname' \ 2 'Interfaces de Rede' \ 3 'Firewall' \ 4 'SElinux' \ 5 'Alterar o nome das interfaces de rede para ethX' \ 6 'Alterar Sistema Operacional' \ 7 'Exit') case $MENU in 1) hostname_func ;; 2) interfaces_rede_func ;; 3) firewall_func ;; 4) selinux_func ;; 5) nome_interfaces ;; 6) sistema_operacional_func ;; 7) exit_func ;; *) menu_func ;; esac } #### INICIO DO PROGRAMA #### dialog --title 'Obrigado!' --msgbox 'Designed and Developed by Bruno Ricardo Rodrigues.' 5 55 sistema_operacional_func menu_func
Instalando BeEF Framework no Ubuntu
Configuração de rede no Virtualbox
Cadastro de usuarios para proxy autenticado
Gerando lista de arquivos mp3 do disco em arquivo de formato HTML
Nenhum coment�rio foi encontrado.
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Um modo leve de ouvir/ver áudio/vídeo da internet em máquinas pererecas
Resolver algumas mensagens de erro do SSH
Instalar módulo de segurança do Banco do Brasil Warsaw do tipo .run
O que você está ouvindo agora? [2] (190)
Procrastinação e autossabotagem são problemas muito comuns na sociedad... (5)
warsaw parou de funcionar após atualização do sistema (solução) (10)