Automação, Segurança e Rede
Introdução a Shell Scripts
Os shell scripts são ferramentas essenciais para automatização de tarefas no ambiente Linux. Utilizando a shell do sistema (em especial o Bash – Bourne Again Shell), os scripts permitem executar comandos em sequência, processar informações, tomar decisões lógicas e interagir com o usuário. Essa capacidade de automação é fundamental para administradores de sistemas, desenvolvedores e qualquer usuário que deseje aumentar sua produtividade no terminal.
1.
Sintaxe Básica de um Shell Script
Um shell script é um arquivo de texto que contém
comandos do terminal organizados em sequência lógica. Para que o sistema
reconheça o arquivo como script executável, a primeira linha deve conter o shebang:
#!/bin/bash
Essa linha informa ao sistema que o script será
interpretado pelo Bash. Após isso, os comandos podem ser escritos como seriam
no terminal.
Exemplo
básico:
#!/bin/bash
echo "Olá, mundo!"
O script deve ter permissão de execução:
chmod +x script.sh
E pode ser executado com:
./script.sh
2.
Variáveis no Shell
Variáveis armazenam valores temporários que podem
ser usados ao longo do script. Atribuições não têm espaços entre o nome da
variável, o sinal de igual e o valor.
Exemplo:
nome="Maria"
echo "Bem-vinda, $nome"
Para capturar o resultado de um comando:
hoje=$(date)
Variáveis de ambiente como $HOME, $USER, $PATH são amplamente utilizadas em scripts para referenciar diretórios e configurações do sistema.
3.
Estruturas Condicionais
As estruturas condicionais permitem decisões baseadas em testes. O Bash oferece o if e o case.
a)
if
if [ condição ]; then
comandos
elif [ outra condição ]; then
outros
comandos
else
comandos
alternativos
fi
Exemplo:
if [ $USER == "root" ]; then
echo
"Você é o administrador"
else
echo
"Você não tem privilégios de root"
fi
b)
case
Útil quando há múltiplas opções possíveis.
case $variavel in
valor1)
comando1 ;;
valor2)
comando2 ;;
*)
comando_default ;;
esac
Exemplo:
echo "Escolha uma opção: [a/b]"
read opcao
case $opcao in
a) echo
"Você escolheu A" ;;
b) echo
"Você escolheu B" ;;
*) echo
"Opção inválida" ;;
esac
4.
Estruturas de Repetição
Laços permitem executar comandos repetidamente. Os
principais são for e while.
a)
for
Usado para iterar sobre listas ou intervalos.
for i in 1 2
i in 1 2 3 4 5; do
echo
"Número $i"
done
Ou:
for i in $(seq 1 5); do
echo
"Contador: $i"
done
b)
while
Executa enquanto uma condição for verdadeira.
contador=1
while [ $contador -le 5 ]; do
echo
"Linha $contador"
contador=$((contador + 1))
done
O laço pode ser interrompido com break, e pular iterações com continue.
5.
Entrada do Usuário com read
O comando read permite capturar dados diretamente do
usuário durante a execução do script.
echo "Digite seu nome:"
read nome
echo "Olá, $nome"
Também é possível ler múltiplas variáveis:
read nome idade
E ocultar a digitação (ex: senhas):
read -s senha
6.
Criação e Execução de Scripts Simples
Exemplo
prático – Verificador de Usuário Root:
#!/bin/bash
if [ "$USER" != "root" ]; then
echo
"Este script deve ser executado como root"
exit 1
fi
echo "Usuário root confirmado.
Continuando..."
Exemplo – Calculadora simples:
#!/bin/bash
echo "Digite o primeiro número:"
read n1
echo "Digite o segundo número:"
read n2
echo "Soma: $((n1 + n2))"
echo "Subtração: $((n1 - n2))"
echo "Multiplicação: $((n1 * n2))"
echo "Divisão: $((n1 / n2))"
Esses exemplos mostram como shell scripts podem facilitar tarefas do dia a dia, como automatizar backups, configurar permissões, processar logs e mais.
Boas
Práticas
Considerações
Finais
A introdução ao shell scripting oferece ao usuário de Linux um recurso valioso para simplificar, repetir e automatizar tarefas administrativas e operacionais. Compreender a sintaxe, o uso de variáveis, estruturas condicionais, laços e entrada do usuário é suficiente para desenvolver scripts úteis e robustos. À medida que o domínio sobre scripting cresce, o Bash se torna uma ferramenta poderosa para controle e personalização do sistema.
Referências
Bibliográficas
Agendadores e Tarefas Automatizadas no
Linux
Automatizar tarefas é uma das atividades mais poderosas e produtivas em sistemas Linux. Através de agendadores como o cron e o at, é possível programar a execução de comandos e scripts de forma recorrente ou única, otimizando rotinas administrativas, backups, monitoramento de sistemas e demais processos repetitivos. Este texto aborda os principais mecanismos de agendamento disponíveis no Linux: o comando crontab e seus arquivos associados, o agendador de execuções únicas at, bem como a verificação dos logs de execução dessas tarefas.
1.
O Agendador cron e o Comando crontab
O cron é um daemon que executa tarefas
automaticamente com base em uma agenda predefinida. Ele verifica constantemente
os arquivos de agendamento e dispara os comandos especificados nas datas e
horários configurados.
O comando crontab (abreviação de "cron
table") permite aos usuários criar, visualizar e editar suas próprias
listas de tarefas agendadas. Cada usuário no sistema pode manter seu próprio
arquivo crontab.
Sintaxe
básica:
A estrutura de uma linha do crontab é composta por
cinco campos de tempo seguidos do comando a ser executado:
minuto hora dia-do-mês mês dia-da-semana comando
Significado
dos campos:
Exemplos:
0 2 * * * /home/usuario/backup.sh
Executar toda segunda-feira às 8h30:
30 8 * * 1 /home/usuario/script.sh
Gerenciamento:
crontab -l
·
Editar o crontab
do usuário:
crontab -e
·
Remover o
crontab:
crontab -r
Ao editar com crontab -e, o arquivo específico de agendamento do usuário é alterado, geralmente armazenado em /var/spool/cron/crontabs.
2.
Arquivos de Cron do Sistema
Além do crontab de usuário, o sistema possui arquivos globais e diretórios especiais para organização das tarefas.
a)
/etc/crontab
Este arquivo permite especificar tarefas com um
campo adicional: o usuário responsável por executar o comando. A sintaxe
é:
min hora dia-mês mês dia-semana usuário comando
Exemplo:
0 5 * * * root /usr/bin/apt update
b)
Diretórios especiais:
Scripts colocados nesses diretórios são
executados
automaticamente com base na periodicidade indicada. O agendamento desses
diretórios é definido no /etc/crontab ou em arquivos relacionados do sistema.
c)
/etc/cron.d/
Permite criar arquivos de configuração separados, úteis para aplicações que precisam registrar seus próprios agendamentos de forma modular.
3.
Comando at: Execução Única Agendada
Diferentemente do cron, o comando at executa comandos uma única vez, em data e hora determinadas. É útil para tarefas pontuais que não precisam se repetir.
a)
Verificar se o serviço está ativo:
sudo systemctl status atd
b) Agendar um comando:
at 15:00
O terminal aguardará a inserção do comando desejado.
Após inserir o comando, finalize com Ctrl+D.
Exemplo:
at now + 10 minutes
c) Visualizar tarefas pendentes:
atq
d) Cancelar uma tarefa:
atrm <job-id>
O at utiliza a fila do serviço atd, cujos arquivos ficam normalmente em /var/spool/at.
4.
Logs de Execução de Tarefas
Monitorar a execução das tarefas agendadas é
essencial para garantir que tudo está funcionando corretamente.
a)
Logs do cron
Em muitas distribuições, os logs são registrados em:
/var/log/syslog
# Ubuntu e derivados
/var/log/cron
# CentOS, RHEL
É possível filtrar os logs com grep:
grep CRON /var/log/syslog
Ou, para ver a última execução:
journalctl -u cron.service
b)
Logs do at
O at registra a execução de tarefas no log do
sistema. Use:
journalctl -u atd.service
Boas
Práticas
/caminho/script.sh >> /var/log/script.log
2>&1
Considerações
Finais
O domínio de agendadores como cron e at representa
um importante passo para a automação e gestão eficaz de sistemas Linux. Essas
ferramentas permitem configurar desde simples execuções pontuais até tarefas
complexas e regulares, sem a necessidade de supervisão humana. Por meio dos
arquivos de configuração, comandos intuitivos e registros detalhados em log, o
Linux fornece uma base sólida e confiável para o controle temporal de
atividades.
Referências
Bibliográficas
Noções de Redes e Segurança no Linux
A administração de redes e a aplicação de práticas seguras são pilares fundamentais da gestão de sistemas Linux. Este ambiente, amplamente utilizado em servidores e infraestruturas críticas, demanda conhecimento técnico para configuração e manutenção de conexões de rede, além de mecanismos de controle de acesso, firewall e gerenciamento de usuários. Este texto explora os principais comandos de rede, arquivos de configuração essenciais, práticas de segurança em permissões e atualizações, além do uso do firewall ufw e a gestão segura de usuários e grupos.
1.
Comandos de Rede no Linux
a)
ip
O comando ip substitui o antigo ifconfig e permite
configurar e exibir interfaces de rede.
Exemplos:
ip a
Adicionar IP estático temporariamente:
sudo ip addr add 192.168.1.100/24 dev eth0
Ativar interface:
sudo ip link set eth0 up
b)
ping
Utilizado para verificar a conectividade entre
hosts.
ping google.com
O ping envia pacotes ICMP e exibe estatísticas de
latência e perda de pacotes.
c)
netstat (obsoleto) e ss
netstat era amplamente utilizado para visualizar
conexões de rede, portas e estatísticas, mas foi substituído pelo ss (socket
statistics), que é mais rápido e eficiente.
Exemplos:
ss -tuln
d)
nmap
Ferramenta de varredura de rede usada para
identificar hosts ativos, serviços, portas abertas e possíveis
vulnerabilidades.
Exemplo:
nmap -sS 192.168.1.0/24
O uso do nmap exige cautela, pois pode ser interpretado como atividade suspeita em redes monitoradas.
2.
Arquivo /etc/hosts e Configuração de IP Estático
a)
/etc/hosts
Esse arquivo local permite mapear nomes de host para
endereços IP, independentemente do DNS.
Exemplo de entrada:
127.0.0.1
localhost
192.168.1.10 servidor.local
É útil em ambientes sem DNS ou para resolver nomes
personalizados.
b)
IP Estático
Em distribuições modernas, a configuração de IP fixo
pode ser feita de várias formas. Em sistemas com Netplan (Ubuntu 18.04+),
edita-se:
sudo nano /etc/netplan/01-netcfg.yaml
Exemplo de configuração:
network:
version: 2
ethernets:
eth0:
dhcp4:
no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
Aplicar:
sudo netplan apply
Em distribuições com NetworkManager, o IP pode ser configurado via nmtui, nmcli ou arquivos do /etc/sysconfig/network-scripts.
3.
Permissões Seguras, Atualizações e UFW
a)
Permissões Seguras
Manter permissões corretas impede acessos indevidos
a arquivos críticos. Boas práticas incluem:
find / -perm -o+w
b)
Atualizações
Atualizações regulares são essenciais para corrigir
vulnerabilidades:
sudo apt update && sudo apt upgrade
·
CentOS/RHEL:
sudo dnf update
Scripts de atualização automática podem ser configurados com unattended-upgrades (Debian) ou dnf-automatic (Red Hat).
c)
UFW – Uncomplicated Firewall
O ufw é um firewall simplificado baseado no
iptables, usado para controlar conexões de entrada e saída.
sudo ufw enable
·
Permitir porta:
sudo ufw allow 22/tcp
·
Negar:
sudo ufw deny 80
·
Ver status:
sudo ufw status
UFW facilita a configuração de regras e é ideal para ambientes pequenos ou servidores pessoais.
4.
Usuários e Grupos: Práticas Seguras
O gerenciamento adequado de contas de usuários e
grupos é fundamental para segurança.
a)
Criação de usuários com privilégios mínimos:
sudo adduser nome
·
Evite conceder
permissões de root desnecessariamente. Para adicionar um usuário ao grupo sudo:
sudo usermod -aG sudo nome
b)
Gerenciamento de grupos:
sudo groupadd devs
·
Adicionar
usuário:
sudo usermod -aG devs nome
c)
Restrições de login:
sudo usermod -L nome
·
Expirar senha:
d) Remoção segura:
sudo deluser nome
sudo delgroup grupo
A política de menor privilégio deve ser aplicada sempre que possível: os usuários só devem ter acesso ao necessário para executar suas funções.
Considerações
Finais
A compreensão das ferramentas de rede e dos
mecanismos de segurança no Linux é essencial para garantir a operação eficiente
e protegida do sistema. Comandos como ip, ss e nmap oferecem controle e
visibilidade sobre o tráfego de rede, enquanto a configuração cuidadosa de
arquivos como /etc/hosts e o uso de firewalls como ufw ajudam a evitar acessos
não autorizados.
Somado a isso, práticas seguras de gerenciamento de usuários e
atualizações constantes consolidam a postura de segurança indispensável em qualquer ambiente Linux, seja ele corporativo ou pessoal.
Referências
Bibliográficas
Acesse materiais, apostilas e vídeos em mais de 3000 cursos, tudo isso gratuitamente!
Matricule-se AgoraAcesse materiais, apostilas e vídeos em mais de 3000 cursos, tudo isso gratuitamente!
Matricule-se Agora