Capítulo 5 — Noções básicas de scripts em Python
Mapa da aula
Aula 05 publicada. Mapa, exemplo, EX013.
flowchart TD
N0["5.1 Primeiros scripts"]
N1["5.2 Leitura de arquivos"]
N2["5.3 Saída clara"]
N3["5.4 Hábitos seguros"]
N0 --> N1 --> N2 --> N3
N3 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX013"]
Desenho lógico
flowchart LR
N0["5.1 Primeiros scripts"]
N1["5.2 Leitura de arquivos"]
N2["5.3 Saída clara"]
N3["5.4 Hábitos seguros"]
N0 --> N1 --> N2 --> N3 --> Q["EX013"]
[5.1 Primeiros scripts]
|
v
[5.2 Leitura de arquivos]
|
v
[5.3 Saída clara]
|
v
[5.4 Hábitos seguros]
|
v
[Exemplo resolvido] --> [Exercício EX013]
Objetivos de aprendizagem
Você vai (1) escrever scripts simples em Python para tarefas de segurança; (2) ler arquivos CSV e de texto; (3) produzir saídas claras e repetíveis.
5.1 Primeiros scripts
Jamal aprende Python usando apenas a biblioteca padrão, para que os scripts rodem em qualquer máquina. Seu primeiro script lê uma lista de contas de usuário do Riverbend num arquivo CSV e conta as contas por grupo. O segundo lista as contas que não fazem login há sessenta dias. A Sra. Grant explica que os scripts transformam verificações manuais lentas em verificações rápidas e repetíveis, o que é essencial para equipes de TI pequenas responsáveis por centenas de dispositivos. Ele executa os dois scripts semanalmente no laboratório e compara os resultados com contagens manuais para confirmar que estão corretos.
5.2 Leitura de arquivos
Jamal aprende a ler arquivos de texto e CSV com o módulo csv e a lidar com problemas: linhas vazias, colunas ausentes e valores inesperados. Seu script pula as linhas ruins e as relata, para que os problemas nos dados fiquem visíveis em vez de escondidos. Ele o testa com um arquivo que contém erros deliberados. Ele aprende que os scripts de segurança precisam falhar de forma ruidosa, porque um script que ignora em silêncio metade da entrada dá uma falsa tranquilidade. Seu arquivo de teste contém dez erros deliberados, e o script relata os dez com os números de linha, o que lhe dá confiança de que não vai esconder problemas em dados reais.
5.3 Saída clara
Jamal formata a saída para pessoas: um título, a data, os totais e uma lista dos itens que exigem ação, ordenados por importância. Ele também grava os resultados num arquivo CSV para os registros do gerente de TI. A Sra. Grant pede que ele inclua a versão do script e o nome do arquivo de entrada em cada relatório, para que qualquer pessoa possa rastrear um resultado até exatamente o que o produziu. O gerente de TI diz que os relatórios são fáceis de ler e pede a Jamal que use o mesmo formato em todos os scripts que escrever durante o estágio. A Sra. Grant usa um de seus relatórios como exemplo em aula.
5.4 Hábitos seguros
Jamal guarda os scripts numa pasta com controle de versão, nunca escreve senhas neles e mantém as saídas que contêm dados pessoais numa pasta restrita. Ele acrescenta comentários explicando por que cada verificação existe. A Sra. Grant observa que os scripts muitas vezes sobrevivem a seus autores, por isso comentários claros e o tratamento seguro dos dados fazem parte de escrever boas ferramentas de segurança. Ele também escreve um breve arquivo README para cada script, explicando o que ele verifica, de que entrada precisa e o que sua saída significa. A Sra. Grant observa que esses arquivos permitem que o gerente de TI execute os scripts depois que Jamal for embora.
Exemplo resolvido
Jamal escreve scripts com a biblioteca padrão que contam contas e sinalizam inatividade, trata entradas ruins de forma ruidosa, formata saídas rastreáveis e mantém os scripts seguros.
Caso sintético. Os dados são sintéticos.
Erros e limites
Scripts que pulam em silêncio as entradas ruins dão uma falsa tranquilidade.
Exercícios
-
EX013 — Script de inatividade. Quais contas o segundo script lista? Rubrica: 3 = sem login há sessenta dias;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
-
EX014 — Linhas ruins. Como o script trata as linhas ruins? Rubrica: 3 = pula e as relata;; 2 = parcialmente correto;; 1 = ignorá-las;; 0 = nenhuma.
-
EX015 — Rastreabilidade. O que cada relatório inclui para permitir o rastreamento? Rubrica: 3 = a versão do script e o nome do arquivo de entrada;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
Continue estudando — aula 05 (capítulo 05 de 30)
← Capítulo 04 · Índice das aulas · Capítulo 06 →
Continue para a próxima aula já escrita.