Horodatage des fichiers sous Linux : atime, mtime, ctime expliqués
Voyons quels sont les différents types d'horodatage de fichiers sous Linux, comment voir les horodatages d'un fichier et comment modifier les horodatages.
Sous Linux, chaque fichier possède des horodatages qui fournissent des analyses cruciales sur le moment où le fichier ou ses attributs ont été modifiés ou modifiés. Voyons ces horodatages en détail.
Que sont les horodatages Linux ?
Tout fichier sous Linux a généralement ces trois horodatages :
atime – temps d'accès
mtime – modifier l'heure
-
ctime – changer l'heure
une fois
atime signifie temps d'accès. Cet horodatage vous indique à quand remonte le dernier accès au fichier. Par accès, cela signifie si vous avez utilisé cat, vim, less ou un autre outil pour lire ou afficher le contenu du fichier.
heure
mtime signifie modifier l'heure. Cet horodatage vous indique à quand remonte la dernière modification du fichier. Modifier signifie que le contenu d'un fichier a été modifié en modifiant le fichier.
heure
ctime signifie heure de changement de statut. Cet horodatage vous indique à quand remonte la dernière fois que la propriété et les métadonnées du fichier ont été modifiées. Les métadonnées incluent les autorisations de fichier, la propriété, le nom et l'emplacement du fichier.
Comment voir les horodatages d’un fichier ?
Vous pouvez utiliser la commande stat pour voir tous les horodatages d'un fichier. Utiliser la commande stat est très simple. Il vous suffit de fournir le nom du fichier.
stat <filename>Le résultat sera comme ceci :
stat abhi.txt
File: abhi.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 10305h/66309d Inode: 11936465 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-08-30 12:19:54.262153704 +0530
Modify: 2018-08-30 12:19:54.262153704 +0530
Change: 2018-08-30 12:19:54.262153704 +0530
Birth: -
Vous pouvez voir l’heure des trois horodatages (accès, modification et changement) dans la sortie ci-dessus. Les trois horodatages sont identiques ici car je viens de créer ce fichier vide avec la commande touch.
Modifions maintenant ces horodatages.
Si j'utilise la commande less pour afficher le fichier, cela modifiera uniquement le temps d'accès car le contenu et les métadonnées du fichier restent les mêmes.
$ less abhi.txt
$ stat abhi.txt
File: abhi.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 10305h/66309d Inode: 11936465 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-08-30 12:25:13.794471295 +0530
Modify: 2018-08-30 12:19:54.262153704 +0530
Change: 2018-08-30 12:19:54.262153704 +0530
Birth: -Modifions maintenant l'heure de modification. J'utiliserai la commande cat pour ajouter un nouveau texte à ce fichier. Cela empêchera le changement du temps d’accès.
$ cat >> abhi.txt
demo text
^C
$ stat abhi.txt
File: abhi.txt
Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11936465 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-08-30 12:25:13.794471295 +0530
Modify: 2018-08-30 12:32:34.751320967 +0530
Change: 2018-08-30 12:32:34.751320967 +0530
Birth: -
Avez-vous remarqué quelque chose de bizarre ? Vous avez modifié le fichier et vous attendiez à ce que le mtime soit modifié, mais cela a également modifié le ctime.
N'oubliez pas que ctime est toujours modifié avec mtime. En effet, même si mtime est sous le contrôle de l'utilisateur, ctime est contrôlé par le système. Il représente la dernière fois que les blocs de données ou les métadonnées d'un fichier ont été modifiés. Si vous modifiez le fichier, les blocs de données changent, et donc ctime est modifié.
Vous pouvez modifier ctime uniquement en modifiant les autorisations de fichiers à l'aide des commandes chmod ou chgrp mais vous ne pouvez pas modifier mtime sans modifier ctime.
Vous ne pouvez pas non plus modifier l'heure dans le passé par des moyens normaux. C'est une sorte de fonction de sécurité car elle vous indique la dernière fois que le fichier a été modifié. Même si quelqu'un modifie mtime et le définit dans le passé à des fins malveillantes, ctime indiquera l'heure réelle à laquelle mtime a été modifié.
Rappelez-vous : ctime sera toujours modifié par mtime change.
À quoi servent les horodatages de fichiers ?
Cela aide beaucoup dans l’analyse. Il peut y avoir plusieurs situations dans lesquelles vous devez vous référer aux horodatages d'un fichier. Par exemple, vous pouvez voir si un fichier a été modifié récemment ou non au moment où il était censé être modifié.
L'une de mes utilisations préférées était de localiser les fichiers journaux d'une application avec mtime. Exécutez l'application et allez simplement dans le répertoire parent de l'application et recherchez les fichiers qui ont été modifiés au cours des dernières minutes.
Je vous ai déjà montré ci-dessus que cela peut également aider à analyser si quelqu'un a accédé aux fichiers ou les a modifiés de manière malveillante. Les horodatages jouent un rôle important dans de telles situations.
Comment savoir quand un fichier a été créé initialement ?
Avez-vous remarqué la dernière ligne du résultat de la commande stat ? Il est écrit « Naissance ». Vous pouvez deviner que cela représente la carte temporelle à laquelle le fichier est « né » (ou créé, pour être plus précis).
En fait, il existe un autre horodatage appelé heure de création (cr). Tous les systèmes de fichiers ne prennent pas en charge cet horodatage. Ext4 est l'un des systèmes de fichiers Linux les plus populaires et, bien qu'il prenne en charge l'horodatage de création, la commande stat n'est actuellement pas en mesure de l'afficher. Peut-être que les futures versions de la commande stat afficheront l'horodatage de création dans la section Naissance.