Linux.se har verifierat att det fungerar. Det rekommenderas starkt att köra det här projektet på en ”slaskmaskin”. Vi har testat det på Ubuntu Server 24.04 LTS på en gammal, sliten Acer-dator med en inkopplad hårddiskvagga.
Men som det står längre ner i artikeln: Kör aldrig detta på ett nätverk som är åtkomligt från internet eller maskin som innehåller viktig data.

Att säkert förstöra innehållet på en hårddisk är avgörande i många sammanhang, till exempel vid återvinning, återanvändning eller avyttring av gammal IT-utrustning. Den här artikeln beskriver hur du sätter upp ett webbgränssnitt där du kan lista datorns anslutna hårddiskar och på ett säkert sätt skriva över vald disk med hjälp av shred
. Lösningen är tänkt att användas lokalt på maskinen, exempelvis i en verkstad eller på en isolerad maskin.
Förutsättningar
För att följa guiden behöver du:
- Ett Linux-system med:
- Apache eller Nginx installerat
- PHP installerat
lsblk
,lsof
ochshred
tillgängliga
- Root-behörighet för att justera sudo-regler
- Grundläggande kunskap om terminalen
Katalogstruktur
Alla nödvändiga filer placeras i webbserverns dokumentrot, vanligtvis /var/www/html/
. Strukturen ser ut så här:
/var/www/html/index.html
/var/www/html/list_disks.php
/var/www/html/check_processes.php
/var/www/html/destroy_disk.php
Gränssnitt och funktion
Webbgränssnittet består av en HTML-sida med JavaScript som:
- Hämtar lista på anslutna diskar via AJAX
- Visar valbara parametrar för
shred
- Kontrollerar om någon process använder vald disk
- Utför radering med
shred
viasudo
- Visar realtidsutmatning från
shred
direkt i webbläsaren
PHP-skript
list_disks.php
Returnerar en JSON-lista på tillgängliga diskar baserat på lsblk
.
check_processes.php
Kontrollerar om någon process har öppna filer mot den valda disken via lsof
.
destroy_disk.php
Kör shred
med valda parametrar och visar utmatning i realtid. Skriptet använder sudo
för att få nödvändiga rättigheter.
Köra shred som root
För att webbserverns användare (oftast www-data
) ska kunna köra shred
och lsof
med root-behörighet krävs justering i sudoers
.
Öppna terminalen och kör:
sudo visudo
Lägg till följande rader:
www-data ALL=(ALL) NOPASSWD: /usr/bin/shred
www-data ALL=(ALL) NOPASSWD: /usr/bin/lsof
Därmed kan webbservern köra just dessa kommandon utan lösenord, men ingenting annat som root.
Starta och testa
Öppna webbläsaren och gå till:
http://localhost/index.html
Om allt är rätt konfigurerat visas en lista på tillgängliga diskar. Du kan välja disk, justera parametrar för shred
och påbörja raderingen. Utmatningen från shred
visas i realtid.
Säkerhetsaspekter
Det här systemet är avsett att köras på en isolerad maskin, exempelvis i en verkstad eller i en destruktionsmiljö. Det ska inte exponeras på öppet nätverk.
Gränssnittet innehåller grundläggande validering, men vidare säkerhetsåtgärder som inloggning eller flerstegsbekräftelser rekommenderas om systemet används utanför strikt kontrollerad miljö.
Felsökning
Om diskarna inte listas eller systemet inte fungerar som förväntat, kontrollera följande:
- Testa att surfa direkt till
list_disks.php
. Du ska se en JSON-lista. - Kontrollera filrättigheter i
/var/www/html
. - Kontrollera serverns fel-loggar, exempelvis
/var/log/apache2/error.log
. - Säkerställ att
shred
ochlsof
finns i/usr/bin/
och är exekverbara. - Bekräfta att sudoers-regeln är korrekt.

Avslutning
Med denna lösning får du ett enkelt och effektivt webbgränssnitt för att säkert förstöra hårddiskar med hjälp av shred
. Rätt konfiguration av webbserver, PHP och sudo är avgörande för att systemet ska fungera säkert och pålitligt. Lösningen är avsedd för lokala miljöer och bör aldrig exponeras för internet utan ytterligare skyddsåtgärder.