Come funziona
Imposta Ambiente su Produzione per un server o un gruppo. Prima che lì parta una riga, Wardterm la legge. Se trova un comando rischioso, dice cosa fa e qual è la mossa sicura, e chiede Eseguire in produzione?. Lo stesso controllo vale per un incolla, un comando salvato, un comando dalla Cronologia e un comando mandato a più server.
Un avviso rosso è per quello che non si può annullare: un disco cancellato, un database eliminato, un server distrutto, un server che non raggiungi più. Gli altri chiedono un secondo sguardo.
Cosa intercetta
- File: cancellazioni ricorsive di cartelle di sistema, home e dati dei database,
rm -rf "$DIR/"*con una variabile che può essere vuota, cartelle di sistema spostate o aperte a tutti, sovrascrittura di/etc/passwdo/etc/fstab. - Dischi:
dd,mkfs,wipefs, tabelle delle partizioni, LVM e ZFS,diskutil eraseDisksu macOS,Format-Volumeecleanin diskpart sui server Windows. - Restare chiusi fuori: regole del firewall che bloccano SSH o scartano tutto, server SSH fermato o riavviato senza una prova,
sshd_config, sudoers o PAM modificati a mano, rete disattivata,authorized_keysrimosso, blocco dell'account che usi. - Alimentazione: spegnimento, riavvio, modalità di ripristino,
Restart-Computer. - Database:
DROP,TRUNCATE,DELETEeUPDATEsenzaWHERE, scritti in un prompt SQL o mandati conpsqlemysql; eliminazioni in MongoDB,FLUSHALLdi Redis, richieste HTTPDELETE. - Container e cloud: volumi e pulizie di Docker,
kubectl delete,helm uninstall,terraform destroy, eliminazione di server, bucket e progetti con gli strumenti di AWS, Google Cloud, Azure e altri cloud. - Git: push forzati, eliminazione di branch remoti,
reset --hard,clean -fdx. - Codice da fuori: un download passato a una shell, come
curl | shoiwr | iex, e testo codificato eseguito da una shell. - Sui server Windows:
Remove-Item -Recurse -Forcesu percorsi di sistema, copie shadow e ripristino, chiavi di registro della macchina, servizi e firewall.
Legge attraverso sudo, ssh host '...', bash -c, xargs, find -exec, docker exec, powershell -Command e più comandi su una riga, con le opzioni scritte unite o separate.
La mossa sicura
Ogni avviso dice cosa può andare storto e cosa fare prima. Prima di ufw enable senza una regola per SSH, permettilo:
ufw allow OpenSSH
Prima di riavviare il server SSH dopo una modifica alla sua configurazione, provala, e tieni aperta questa sessione mentre ne provi una nuova:
sshd -t && systemctl restart sshd
I comandi di tutti i giorni restano in silenzio: rm file.txt, git push, DELETE ... WHERE id = 1 o systemctl restart nginx partono senza domande.
Cosa non può vedere
Wardterm legge la riga che mandi, non quello che il server ne fa. Questi partono senza avviso:
- alias, funzioni e script, come
./cleanup.sh; - scorciatoie della cronologia che la shell espande, come
!!; - nomi e percorsi costruiti quando il comando gira, come
$(echo rm)o una variabile che contiene un percorso; - testo codificato o compresso che non è nella riga stessa;
- tasti scritti dentro programmi a schermo intero, come un editor.
L'avviso ti dà un secondo sguardo. Backup e permessi limitati sul server fanno il resto. Approfondisci nella pagina sulla sicurezza in produzione.