Sous Linux, chaque fichier a des horodatages qui fournissent des analyses cruciales sur le moment où le fichier ou ses attributs ont été modifiés ou changé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
atime
atime représente le 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.
mtime
mtime signifie temps de modification. Cet horodatage vous indique à quand remonte la dernière modification du fichier. Par modifier, cela signifie si le contenu d'un fichier a été modifié en éditant le fichier.
ctime
ctime représente l'heure de changement d'état. 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. L'utilisation de la commande stat est très simple. Il vous suffit de fournir le nom du fichier avec.
stat <filename>
La sortie ressemblera à 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 les trois horodatages (accès, modification et changement) dans la sortie ci-dessus. Les trois horodatages sont les mêmes 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 lire le fichier, cela ne changera que 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. Je vais utiliser la commande cat pour ajouter un nouveau texte à ce fichier. Cela empêchera la modification 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 vous attendiez à ce que le mtime soit modifié, mais il a également modifié le ctime.
N'oubliez pas que ctime est toujours modifié par mtime. C'est parce que tandis que 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 seul 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 changer ctime 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 le mtime a été modifié.
Souviens-toi :ctime sera toujours modifié par mtime change.
À quoi servent les horodatages de fichiers ?
Cela aide beaucoup dans l'analyse. Il peut y avoir un certain nombre de situations où 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 devait ê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éé ?
Avez-vous remarqué la dernière ligne de sortie de la commande stat ? Il dit "Naissance". Vous pouvez deviner que cela représente le timestmap lorsque 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 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.