Un file può apparire modificato prima della sua creazione? [duplicare]


9

È possibile avere un file con una data modificata precedente alla data di creazione? Quali azioni causerebbero questo evento?


7
Crea il file. Torna indietro. Modifica il file. Metti di nuovo l'orologio.
DavidPostill

@DavidPostill Nota che, almeno su Windows, la modifica dell'ora di sistema richiede privilegi di amministratore, mentre ci sono altri modi per creare tempi di file divertenti che non lo fanno.
Ben N

Risposte:


8

Considera un archivio .tar che viene estratto. In genere, i file estratti avranno un timestamp di ultima modifica assegnato dal contenuto dell'archivio (che è in genere passato se non sei un viaggiatore nel tempo). Per quanto riguarda il filesystem, questi file sono stati appena creati.

Esistono anche utility per cambiare il tempo di modifica dei file esistenti, ad esempio su Linux questo è il comando touch .


E per un singolo file, cp -pe le cose che lo imitano come rcp -pe scp -p, così come rsynccon -to -a, prendono il modtime dalla fonte.
dave_thompson_085

"tempo di creazione" è un termine di Windows non * * nix. * nix ha "tempo di cambio" che è facile da confondere con "tempo di creazione" ma non è la stessa cosa.
lavaggio:

ext4 apparentemente memorizza un "tempo di nascita" che è simile (ma non uguale a) il "tempo di creazione" di Windows, ma non esiste un buon modo per accedervi. unix.stackexchange.com/a/50184/122182
plugwash

8

Se si crea un file da zero, si ottiene un tempo di creazione di "ora" e una data di modifica di "ora". Ora immagina di copiare questo file su un'altra unità. Di Windows manterrà la data di modifica, ma l'ora di creazione di tale file verrà impostato il tempo è stato copiato il file da tale unità (cioè il tempo il file è stato creato su quella unità). Semplice come quella.

In realtà è corretto:

  • L'ultima volta che il contenuto del file è stato modificato viene memorizzato nel tempo di modifica.
  • Il tempo in cui il file è stato creato su questa stessa unità è memorizzato nel momento della creazione.

Questo commento ha più senso perché dimostra uno scenario molto probabile in cui si verificherà una discrepanza di data creata / modificata.
Shukri Adams,

7

Su Windows, è molto facile impostare (falsificare, se vuoi) i tempi di creazione e modifica di un file. Non è necessario modificare l'orologio del computer; non hai nemmeno bisogno dell'accesso di amministratore locale. Tutto ciò che serve è l'accesso in scrittura al file in questione.

Per impostare l'ora di creazione di un file con PowerShell usando SetCreationTime:

[System.IO.File]::SetCreationTime("C:\path\to\file.ext", (Get-Date "8/8/2088"))

Per impostare l'ora dell'ultima modifica utilizzando SetLastWriteTime:

[System.IO.File]::SetLastWriteTime("C:\path\to\file.ext", (Get-Date "7/4/1776"))

Su Linux, puoi facilmente cambiare l'ora dell'ultima modifica di un file con il -dflag di touch, come mostrato in questa domanda Chiedi a Ubuntu . Non c'è davvero la nozione di una data di creazione per i file su file system Linux ( ulteriori letture su Unix e Linux ).


3

Sì. Su Windows, modifica il file e salvalo. Ora copia il file. Osservando le proprietà della copia, vedrai che ha una data di modifica precedente.


1

La cosa più importante da notare qui è che il tempo di modifica del file non è davvero speciale - è memorizzato proprio come qualsiasi altro dato. Non c'è modo di sapere quando i dati sono stati effettivamente scritti o letti dall'ultima volta.

Da qui, possiamo vedere che è sempre possibile (escludendo i supporti write-once come un CD) andare e modificare direttamente i bit su un'unità che memorizzano l'ora dell'ultima modifica, o anche l'ora della creazione.

Più praticamente, questo è fattibile anche all'interno di sistemi operativi comuni, come hanno notato altre risposte. In Windows, questo è fornito dalla SetFileTimefunzione WinAPI e puoi farlo con utimesu Linux. Strumenti come touchbuild su queste API.

L'uso legittimo più comune per queste API è quello di preservare i tempi di modifica, ad esempio durante la copia di file, l'estrazione da archivi, ecc.


0

Nella mia esperienza è stato quando uno o più computer sono stati utilizzati per modificare il file e uno di essi ha l'ora di sistema errata. Le tre cause più comuni per cui l'ora del sistema è sbagliata, in nessun ordine particolare sono:

  1. Non tutti i computer sono configurati per passare automaticamente all'ora legale.
  2. Le persone hanno "accidentalmente" cambiato l'ora di sistema su un computer.
  3. Le persone hanno "deliberatamente" cambiato l'ora del sistema su un computer per scherzo.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.