Cosa fa#
Confronta due file riga per riga e mostra le differenze. Fondamentale per rilevare modifiche non autorizzate a file di configurazione o log.
Sintassi#
diff [opzioni] file1 file2
Comandi essenziali#
| Comando | Flag | Significato flag | Cosa fa |
|---|---|---|---|
diff file1 file2 | — | — | Output classico con < e > |
diff -u file1 file2 | -u | unified | Output unificato con contesto — più leggibile |
diff -r dir1 dir2 | -r | recursive | Confronta due directory intere |
diff -i file1 file2 | -i | ignore case | Ignora differenze maiuscolo/minuscolo |
diff -q file1 file2 | -q | quiet | Dice solo se i file sono diversi, senza mostrare le differenze |
Come leggere l'output#
Output classico#
42c42 ← riga 42 del file1 è Changed rispetto a riga 42 del file2
< riga_in_file1 ← contenuto nel primo file
---
> riga_in_file2 ← contenuto nel secondo fileCodici di modifica:
c = changed (riga modificata)
a = added (riga aggiunta)
d = deleted (riga cancellata)Output unified (-u)#
--- file1 ← primo file
+++ file2 ← secondo file
@@ -39,7 +39,7 @@ ← posizione nel file
riga_contesto ← riga uguale (contesto)
-riga_rimossa_da_file1 ← presente solo in file1
+riga_aggiunta_in_file2 ← presente solo in file2
riga_contesto ← riga uguale (contesto)Combinazioni utili#
# Confronta file di configurazione e salva le differenze
diff -u config.old config.new > modifiche.patch
# Confronta due directory ricorsivamente
diff -r /etc/backup/ /etc/
# Verifica se due file sono identici (exit code 0 = uguali)
diff -q file1 file2 && echo "Identici" || echo "Diversi"Scenario Reale#
Durante un incident response, un analista confronta la versione attuale di /etc/passwd con il backup di ieri: diff -u /backup/passwd /etc/passwd. Se appare una riga con + che aggiunge un nuovo utente con UID 0 — è un backdoor. diff è uno degli strumenti più semplici ma più potenti per rilevare file integrity violations.
Dove l'ho usato#
- bandit-17 — trovare la riga cambiata tra passwords.old e passwords.new
Note personali#
Ricorda: il primo file è sempre
-o<, il secondo è sempre+o>. Per trovare flag utili nel man: cerca /unified, /recursive, /ignore. In ambito Blue Team, diff su file di configurazione critici è uno dei check base durante un IR.
Collegato a#
- system — categoria
- incidents — categoria
- grep — grep cerca dentro un file, diff confronta tra file
- file-integrity — diff è uno dei tool base per verificare integrità


