Fare assistenza tecnica per gli sviluppatroti alle volte è come vivere una puntata della signora in giallo, nominata in famiglia come “la vecchia rompicoglioni”: qualcuno fa qualcosa che non dovrebbe fare, nasconde la sua responsabilità per quasi tutta la puntata, guardandosi bene dal denunciarsi finché non viene scoperto e costretto a sberle a confessare.
Ecco, con la differenza che quando si ha a che fare con gli sviluppatroti raramente si arriva alla confessione.
Le trombe del Mercoledì mattina suonano alle prime luci dell’alba, quando arriva $Confuso al galoppo su Whatsapp a lamentarsi che il sito è irraggiungibile: il sito è in errore 500 e, immagino, siccome contiene la parola “server” allora è sicuramente un problema del server.
$Confuso è il classico programmatore improvvisato e casinista, dove programmatore significa che in pratica sa solo come si installa WordPress e poco di più. Inoltre ha sempre non meno di 35 finestre aperte a casaccio e quando deve farti vedere una qualsiasi cosa, passa i primi due minuti a cercare la finestra dove si trova. Incapace di avere un filo logico e con non meno di duecento icone sul desktop, è il classico soggetto che manda mail a raffica, per cui per un problema è capace di mandarti non meno di 10 email per volta. Insomma, una vera spina nel fianco.
Eccolo quindi al capezzare a richiedere giustizia: il sito è in errore 500. Naturalmente, neanche a dirlo, tiene subito a precisare che lui non ha modificato niente. Cioè, si trovava da quelle parti ma non ha notato nulla. Mi sarei stupito del contrario.
Una volta appurato il fatto che la baracca sembra andare senza problemi faccio un primo giro sui log e ottengo una prima prova interessante, che viene imbustata e mandata alla scientifica:
PHP Fatal error: require(): Failed opening required '/data/websites/dominio.tld/www/wp-includes/load.php'
Ok, dice che manca un file, mi pare un buon inizio e sicuramente contribuisce al fatto che il sito non sembra voler partire. Il problema inizia esattamente alle 6.44 di questa mattina, se lui stava lavorando sul sito ma non ha fatto niente, come è possibile che il file sia sparito da solo? La cosa si complica ulteriormente non appena mi collego in remoto: manca una intera cartella di sistema, la wp-includes di WP.
Riporto a lui questi dubbi, chiedendogli di ricordare cosa ha fatto che possa avere causato, anche indirettamente il problema. La risposta, granitica, è che assolutamente no, non lo sa. Lui ha solo aggiornato il file robot.
Il soggetto era presente sulla scena del delitto al momento dell’efferato omicidio, ma sostiene che in quel momento era girato a fare altro. Uhmmm.
Ritenendo l’imputato reticente a questo punto decido di andare a fondo e cerco nei log ulteriori prove di colpevolezza. Sappiamo l’ora esatta in cui il sito viene assassinato, cerchiamo gli eventi subito prima e, magari, vediamo gli accessi FTP in quel momento.
A quel punto le indagini subiscono la classica svolta:
[17/Oct/2018:06:43:57 +0200] "RNTO /www/wp-content/wp-includes"
All’interno della stessa sessione in cui viene caricato il file robot, l’intera cartella viene spostata all’interno di wp-content, dove in effetti viene ritrovata.
Posto di fronte all’evidenza l’imputato continua a negare, ma a questo punto il commissario entra e lo arresta per eccesso di stronzaggine.
Titoli di coda.