Wie verhält sich mv bei /?

373
doliv071

Einer unserer Benutzer hat versehentlich mv /* ../ohne Root-Berechtigung gearbeitet. Nachdem diffich die Effekte überprüft hatte, war ich überrascht zu finden, dass es mvoffensichtlich so war, cpals würde es auf das /Verzeichnis angewendet .

Meine Fragen sind also:

  1. Ist das Standardverhalten für den mvBefehl?
  2. Gibt es noch etwas, das ich prüfen sollte, um sicherzustellen, dass dem System kein Schaden entstanden ist?
0

1 Antwort auf die Frage

3
Kamil Maciorowski

Ich glaube, das Ziel ( ../) befand sich irgendwo innerhalb /home/oder an einem anderen Mountpoint, an dem das Dateisystem anders als /angehängt war.

  1. Ist das Standardverhalten für den mvBefehl?

Ja. Wenn eine Datei zwischen Dateisystemen verschoben wird, wird sie kopiert, die Quelle wird gelöscht und der Besitz der Kopie wird so angepasst, dass die Quelle gespiegelt wird. Ich denke, dies war der Fall, aber der Teil "Löschen" warf "Erlaubnis verweigert", und es wurde nichts gelöscht (oder fast nichts, ich werde in Kürze darauf zurückkommen).

Wenn das Verschieben innerhalb eines einzelnen Dateisystems erfolgen soll, mvversuchen Sie, Verzeichniseinträge ohne Kopieren zu aktualisieren. Wenn ein normaler Benutzer versucht, etwas innerhalb des Root-Dateisystems zu verschieben, trifft der Prozess normalerweise auf "Erlaubnis verweigert", und es passiert überhaupt nichts. In diesem Fall war das Zieldateisystem jedoch anders, wie oben beschrieben. Doch mvirgendwann versucht, das zu bewegen /home/(oder andere) einhängepunkt in seinem Dateisystem, tiefer in den Baum, wo ../war. Diese Aktion ist offensichtlich unmöglich, Sie können das Verzeichnis nicht in sein Unterverzeichnis verschieben. Auf diese Weise wurden die Dateien des Benutzers im gleichen Dateisystem wie ../die intakten Dateien gelassen, obwohl er sie ../nacheinander verschieben konnte.

Die einzige Gefahr, die ich mir vorstellen kann, ist das folgende Szenario: Wenn der Benutzer Dateien und / oder Verzeichnisse in einem anderen Dateisystem als dem löschen kann, in dem sich das System befunden hat ../, mvwürden sich cpdie Quelldateien und / oder Verzeichnisse löschen . Sie sollten prüfen, ob dies passieren kann und wie schwerwiegend es war. In diesem Fall müssen einige Dateien möglicherweise zurückgeschoben werden. Dies sollte nicht passieren, wenn der Benutzer ein ganz normaler Benutzer ist. Der Benutzer hat möglicherweise einige Dateien weggezogen, /tmp/aber es ist wahrscheinlich nichts Ernstes.

  1. Gibt es noch etwas, das ich prüfen sollte, um sicherzustellen, dass dem System kein Schaden entstanden ist?

Ich glaube nicht Wenn das System ordnungsgemäß konfiguriert ist, kann ein normaler Benutzer nichts dagegen tun. In diesem Fall ist das Zieldateisystem aufgrund der unerwartet kopierten Dateien möglicherweise voll, aber das ist es. Nachdem Sie sich mit dem oben beschriebenen gefährlichen Szenario befasst haben, entfernen Sie die Kopie. Das System sollte in Ordnung sein.

Ich würde als all die Reinigung tut dem Benutzer, nicht als root, auch wenn jemand anderes zu tun hat (wie sudo -u user rm something). Es gilt, den Systemschaden bei einem weiteren Fehler zu vermeiden.

Ausgezeichnet. Danke für die ausführliche Antwort. doliv071 vor 6 Jahren 0