Qual è il motivo di questa specifica sequenza "rm" nella battuta di xkcd?


14

Ecco parte di questo fumetto xkcd in cui l'idea è che l'autore non può scrivere un programma di ordinamento, quindi aggiunge il codice per eliminare tutti i file

system("rm -rf ./");
system("rm -rf ~/*");
system("rm -rf /");

AFAIK il modo canonico di eliminare tutto è quello di eliminare tutto a rm /partire da root. Ecco questo è l'ultimo comando e i due comandi prima che provino a farlorm directory corrente e al contenuto della home directory.

Perché non solo rm /?

Risposte:


19

Se inizi dall'alto, è possibile che spazzerai via qualcosa del genere rm (o qualche altra parte critica del sistema) deve continuare e la malvagità rimarrà incompleta.

Questi comandi assicureranno che almeno il cwd e la home directory dell'utente siano andati prima di diventare nucleari.


5
JFTR mentre rm viene caricato nel memorizzatore, dovrebbe funzionare e continuare a funzionare anche se le variabili necessarie vengono rimosse. Dopo aver eseguito rm -rf /una sessione interattiva, la shell dovrebbe funzionare ancora
Ulrich Dangel

8
Gli ultimi rms falliranno sull'ultimo comando con rm: it is dangerous to operate recursively on ‘/’; diverso da quello rmnon richiede l'accesso a nessuna risorsa dopo l'inizializzazione. Un motivo per utilizzare più comandi potrebbe essere che l'utente potrebbe disporre di autorizzazioni di accesso diverse a quelle directory.
Stéphane Gimenez,

@UlrichDangel, ho scoperto a modo suo su Solaris molto tempo fa ...
vonbrand

1
Lo farà. In realtà devi usarlo rm --no-preserve-root /perché funzioni davvero
Max

1
"Questi comandi assicureranno che almeno il cwd e la home directory dell'utente siano andati prima di diventare nucleari." Cosa succede se eseguiamo quello script quando ci troviamo in "/ bin /" :)? Gli ultimi due comandi non verranno eseguiti affatto.
XzKto

8

Solo per mostrare livelli crescenti di distruttività: elimina la directory corrente, quindi $HOME, infine, distruggi tutto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.