Ich glaube, das Ziel ( ../
) befand sich irgendwo innerhalb /home/
oder an einem anderen Mountpoint, an dem das Dateisystem anders als /
angehängt war.
- Ist das Standardverhalten für den
mv
Befehl?
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, mv
versuchen 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 mv
irgendwann 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 ../
, mv
würden sich cp
die 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.
- 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.