[[Vorlage(Getestet, bionic, focal, jammy)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(safe-rm_logo_64.png, 48, align=left)]] Durch eine kleine Unachtsamkeit auf der Kommandozeile kann man ein System sehr schnell unbrauchbar machen. Etwa indem man beim Löschen mit Root-Rechten ein Leerzeichen zuviel eingibt. [launchpad:safe-rm:] {en} von [lpuser:fmarier:François Marier] ist ein kleines Programm, das in einer Liste nachschaut, ob eine Datei oder Verzeichnis gelöscht werden darf. Ist dies der Fall, ruft es ganz normal [:rm:] auf. Steht die Datei oder das Verzeichnis aber in der Liste, überspringt safe-rm die Datei oder das Verzeichnis. Konstruktionsbedingt schützt das Programm nur auf der Kommandozeile. Ein versehentliches Löschen aus einer grafischen Anwendung ist nach wie vor möglich. = Installation = safe-rm kann direkt aus den offiziellen Paketquellen installiert werden [1]: {{{#!vorlage Paketinstallation safe-rm, universe }}} = Verwendung = Da safe-rm ein [wikipedia:Wrapper_(Software):Wrapper] ist, ersetzt es die Funktion von [:rm:] nicht, sondern ergänzt diese. Da bei Debian und Ubuntu zuerst in '''/usr/bin''' nach Programmen gesucht wird, das klassische rm sich aber in '''/bin''' befindet, muss safe-rm das klassische rm gar nicht ersetzen. safe-rm installiert sich nach '''/usr/bin/rm''', während das klassische rm unter '''/bin/rm''' verbleibt. Ruft man `rm` im Terminal [2] auf, wird nun '''/usr/bin/rm''' ausgeführt, also safe-rm. safe-rm schaut nun in der globalen Konfigurationsdatei '''/etc/safe-rm.conf''' nach, ob das ausgewählte Verzeichnis oder die ausgewählte Datei dort verzeichnet ist. Ist dies der Fall, wird das Verzeichnis oder die Datei nicht gelöscht. Gibt es in der Datei keine Entsprechung, schaut safe-rm in der Konfigurationsdatei des ausführenden Benutzers ('''~/.safe-rm'''), ob das ausgewählte Verzeichnis/Datei dort zu finden ist und überspringt dieses/diese gegebenenfalls. Steht die Datei oder das Verzeichnis auf keiner der beiden schwarzen Listen, dann ruft safe-rm das ganz normale [:rm:] also '''/bin/rm''' auf. {{{#!vorlage Hinweis Seit durch [wikipedia:Filesystem_Hierarchy_Standard#Usrmerge:Usrmerge], also ab [:19.04:Ubuntu 19.04] '''/bin''' und '''/usr/bin''' ein und dasselbe Verzeichnis sind, kann `safe-rm` nicht mehr als `rm` nach `/usr/bin` kopiert werden. Als Workaround sorgt das Programm mittels der [:Umgebungsvariablen:Umgebungsvariable] `PATH` dafür, das vor den genannten Verzeichnissen das Verzeichnis '''/usr/share/safe-rm/bin''' durchsucht wird. Der herkömmliche Befehl `rm` kann weiterhin durch Angabe des vollen Pfades aufgerufen werden. }}} {{{#!vorlage Warnung Es besteht die Gefahr einer Gewöhnung, d. h. zunehmender Unachtsamkeit beim Aufruf von `rm`. Wenn man dann an einem Rechner arbeitet, auf dem safe-rm nicht installiert ist, kann es schnell passieren, dass man einen wichtigen Ordner löscht. Es empfiehlt sich die Installation von safe-rm unter anderem Namen (z.B. `rms`, dann natürlich auch immer diesen Befehl benutzen!) oder die Benutzung von [:Papierkorb#Kommandozeile:trash-cli]! }}} == Konfiguration == Möchte man weitere Verzeichnisse oder Dateien mit safe-rm schützen, kann man dies tun, indem man die Datei oder das Verzeichnis in die globale Konfigurationsdatei für alle Nutzer oder in die persönliche Konfigurationsdatei einträgt. * globalen Konfigurationsdatei: '''/etc/safe-rm.conf''' (Root-Rechte erforderlich) * persönliche Konfigurationsdatei: '''~/.safe-rm''' Möchte man ein Verzeichnis schützen, trägt man einfach den Pfad in eine der Konfigurationsdateien ein: {{{#!code /backups }}} Möchte man alle Dateien und Unterverzeichnisse in einem Verzeichnis schützen, dann nutzt man dazu Wildcards: {{{#!code /srv/nfs/* }}} = Links = * [launchpad:safe-rm:Projektseite] {en} * [man:safe-rm:Manpage] {en} * [:rm:] - der remove-Befehl * [:Papierkorb#Kommandozeile:trash-cli] - den Mülleimer per Kommandozeile nutzen * [https://blog.znn.info/safe-rm/ safe-rm – oder wie man Daten vor sich selbst schützt] {de} - Blogbeitrag, 07/2013 #tag: System, Sicherheit, Shell