GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Mv überschreibt schreibgeschützte Datei ohne Aufforderung?

Das GNU Coreutils-Handbuch für mv sagt:

Wenn eine Zieldatei existiert, aber normalerweise nicht beschreibbar ist, die Standardeingabe
ein Terminal ist und die Option -f oder –force nicht angegeben ist, fragt mv
den Benutzer, ob die Datei ersetzt werden soll. (Möglicherweise besitzen Sie die
Datei oder haben Schreibrechte für ihr Verzeichnis.) Wenn die Antwort
nicht bestätigend ist, wird die Datei übersprungen.

Die Version von mv Ich verwende (GNU Coreutils 8.21 auf Ubuntu 14.04.3 LTS) zeigt unerwartetes Verhalten:

$ which mv
/bin/mv
$ ls -l
total 0
$ echo foo > 1; chmod -w 1; cp 1 2; ls -l | cut -d' ' -f 1-5,9
-r-x------ 1 me me 4 1
-r-x------ 1 me me 4 2
$ echo bar > 2
-bash: 2: Permission denied
$ mv 1 2
$ ls -l | cut -d' ' -f 1-5,9
-r-x------ 1 me me 4 2

Basierend auf dem oben zitierten Handbuchauszug hätte ich die mv 1 2 erwartet Befehl, den Benutzer vor dem Überschreiben der Datei 2 aufgefordert zu haben .

Gibt es einen Fehler in meiner Version von mv , oder ein Fehler in meinem Verständnis? Wenn letzteres, was macht dann das Handbuch bedeuten?

Akzeptierte Antwort:

Es stellte sich heraus, dass der Server ein Dateisystem vom Typ „cifs“ (vermutlich das Common Internet File System, auch bekannt als CIFS) verwendete. Dies wurde durch Ausführen des Befehls df -T entdeckt .

CIFS zeigt offensichtlich ein unkonventionelles Verhalten in Bezug auf Berechtigungen.

Das Ausführen der gleichen Befehle auf einem Computer mit einem ext4-Dateisystem und einer aktuellen Version von Coreutils ergab:

$ mv 1 2
mv: replace ‘2’, overriding mode 0444 (r--r--r--)?

wie erwartet.


Linux
  1. Auf Freebsd kann nicht in eine Datei geschrieben werden – Nur-Lese-Dateisystem?

  2. Texteditor, der Dateien ohne Aufforderung aktualisiert?

  3. Ist rename() ohne fsync() sicher?

  4. Unrar alle Dateien im Verzeichnis ohne Aufforderung

  5. Hängen Sie die Zip-Datei als schreibgeschütztes Dateisystem ein

Verschieben von Dateien unter Linux ohne mv

So führen Sie den Sudo-Befehl ohne Passwort aus

So bearbeiten Sie eine Datei, ohne ihre Zeitstempel in Linux zu ändern

Kopieren Sie Dateiinhalte in die Zwischenablage, ohne sie anzuzeigen

Warum ist mein Dateisystem schreibgeschützt gemountet?

cp-L vs. cp-H