Ga naar inhoud

Het rm commando

Controleren of rm aanwezig is

Het rm-commando is een van de meest gebruikte commandoโ€™s in Linux en staat bijna altijd standaard op je systeem geรฏnstalleerd.
Het maakt deel uit van het pakket GNU coreutils, dat basiscommandoโ€™s levert zoals cp, ls, mv, en cat.

Wil je controleren of rm aanwezig is, dan kun je de versie opvragen:

rm --version
Voorbeeldoutput
rm (GNU coreutils) 9.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.

โš™๏ธ Installeren van rm

Het commando rm maakt deel uit van het pakket GNU coreutils.
Dit pakket bevat de meest gebruikte basiscommandoโ€™s in Linux, zoals cp, ls, mv, en cat.

๐Ÿ‘‰ Daarom is rm op vrijwel alle Linux-distributies standaard geรฏnstalleerd, inclusief Debian en Ubuntu.
Alleen in uitzonderlijke gevallen, zoals zeer minimale systemen of custom builds, moet je het handmatig installeren.

Installatie op Debian/Ubuntu:

sudo apt update
sudo apt install coreutils

Voorbeeldoutput
rm (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Hieronder vind je enkele veelgebruikte combinaties van het rm-commando:

  • rm bestand.txt โ†’ Verwijder een bestand
Voorbeeld gebruik van rm bestand.txt

Commando:

rm bestand.txt
Voorbeeldoutput:
# bestand.txt is verwijderd

  • rm -i bestand.txt โ†’ Vraagt bevestiging vรณรณr verwijderen

  • rm -v bestand.txt โ†’ Laat zien wat er verwijderd wordt

  • rm -f bestand.txt โ†’ Forceer verwijderen, negeert fouten en bevestiging

  • rm -r map/ โ†’ Verwijder een hele map inclusief inhoud

  • rm -rf map/ โ†’ Recursief + forceer verwijderen (pas op!)

  • rm --preserve-root / โ†’ Bescherm de rootdirectory tegen verwijderen

  • rm --one-file-system map/ โ†’ Alleen bestanden op dezelfde filesystem verwijderen

  • rm --interactive=once bestand.txt โ†’ Vraag รฉรฉn keer bevestiging voor alle bestanden

  • rm --backup=nummer bestand.txt โ†’ Maak backups van te verwijderen bestanden

Het rm-commando kan veiliger gemaakt worden met aliases.

1. Per gebruiker instellen

Plaats instellingen in je shell-configuratie:

alias rm='rm -i'

Dit zorgt dat je altijd bevestiging moet geven voor verwijderen.

2. System-wide instellen

Plaats dezelfde alias in /etc/bash.bashrc of /etc/profile.

Voordelen: - Voorkomt dat bestanden per ongeluk verwijderd worden.

Logging van het rm-commando

Het rm-commando schrijft zelf geen logbestanden weg.
Wil je gebruik van rm monitoren, dan kan dat met auditd.

Voorbeeld auditd regel

sudo auditctl -w /bin/rm -p x -k rm_monitor
  • -w /bin/rm โ†’ bewaak het bestand /bin/rm
  • -p x โ†’ log bij uitvoeren
  • -k rm_monitor โ†’ tag voor herkenning

Logs bekijken:

ausearch -k rm_monitor

Of rechtstreeks in:

less /var/log/audit/audit.log

Coreutils en het rm-commando

Het rm-commando maakt deel uit van coreutils.
Je kunt rm dus niet apart updaten, alleen het hele pakket.

sudo apt update
sudo apt install --only-upgrade coreutils

Verwijderen van rm

Het rm-commando is een fundamenteel onderdeel van Linux.
Het verwijderen kan scripts of systeemfunctionaliteit breken.
Gebruik liever permissies of een alias als je het wilt beperken.

Voorbeeld alias om rm te blokkeren:

alias rm='echo "rm is uitgeschakeld"'

Permissies aanpassen:

sudo chmod 700 /bin/rm
(Alleen root kan het uitvoeren)

๐Ÿ“– Handleiding

De ingebouwde handleiding van Linux-commandoโ€™s is altijd beschikbaar via man.
Voor rm:

man rm
Voorbeeld
RM(1)                      User Commands                     RM(1)

NAME
       rm - remove files or directories

SYNOPSIS
       rm [OPTION]... FILE...
       rm [OPTION]... -r DIRECTORY...

DESCRIPTION
       Remove (unlink) the FILE(s).  With -r, remove directories and their contents recursively.