Cosa accadrebbe se eseguissi ‘sudo rm -rf *’ nella cartella principale del mio computer?

Su Unix, in generale, vi è permesso rimuovere file e directory anche se sono in uso. Infatti, non dovete nemmeno essere root per fare questo: se avete il permesso di rimuovere un file o una directory, allora avete il permesso di farlo indipendentemente dal fatto che il file sia in uso, la directory sia in uso, o un file all'interno della directory sia in uso. Se rimuovete un file che è in uso, il sistema semplicemente non lo dealloca effettivamente dal file system fino a quando il suo numero di riferimenti non arriva a zero, cioè tutti i descrittori di file per quel file sono chiusi. Questo contrasta con Windows, su cui semplicemente non vi è permesso di rimuovere un file che è in uso, anche se avete privilegi amministrativi.

Tuttavia, POSIX fa un'eccezione: potreste non essere autorizzati a rimuovere una directory se è la directory principale o la directory di lavoro corrente del processo chiamante o qualche altro processo. (Il sistema ha il permesso di lasciarvelo fare, ma ha anche il permesso di non lasciarvelo fare.)

Così, per esempio, sarebbe sicuro assumere che le directory /lib e /bin verrebbero rimosse interamente poiché è improbabile che qualsiasi processo le abbia come directory principale o directory di lavoro corrente. Dopo di che, è improbabile che siate in grado di eseguire altri eseguibili, anche se la shell continuerebbe a funzionare.

Su Linux, non vi è anche permesso di rimuovere una directory se è un punto di montaggio. Generalmente, i seguenti sono punti di montaggio: /dev/pts, /proc, /run, /sys. Probabilmente sareste in grado di rimuovere tutto ciò che si trova all'interno di /dev, eccetto /dev/pts, quindi la directory /dev stessa sopravviverebbe. (Notate che potete sempre rimuovere i file di dispositivo, anche se sono montati: la cosa che è montata non è protetta, ma il posto dove è montata sì). /proc e /sys non verrebbero toccati poiché sono comunque file system di sola lettura. Potreste probabilmente rimuovere la maggior parte o tutto il contenuto di /run, ma non /run stesso. Anche /media sopravviverebbe se avete qualcosa montato sotto di esso. /boot e /etc verrebbero probabilmente rimossi nella loro interezza. Le rimanenti directory di primo livello possono essere o meno punti di montaggio. Io ho /home, /usr e /var tutte sulla stessa partizione come tutto il resto, ma molti sistemi le hanno in partizioni separate. In questo caso, quelle directory sarebbero punti di montaggio, e non sareste in grado di rimuoverle, anche se probabilmente sareste in grado di rimuovere tutto o quasi tutto il loro contenuto.