GNU/Linux >> Tutoriels Linux >  >> Linux

Horodatages de fichiers sous Linux :atime, mtime, ctime expliqués

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.


Linux
  1. Linux - Quels systèmes de fichiers sur Linux stockent l'heure de création ?

  2. Linux - Tout est un fichier ?

  3. Pipes et redirection sous Linux - expliqués !

  4. Comprendre les horodatages des fichiers Mac

  5. Comment rediriger la sortie de la commande time vers un fichier sous Linux ?

Commande de temps Linux

La commande Linux cksum expliquée pour les débutants (avec des exemples)

Explication de la commande Linux Stat

Comment éditer un fichier sans changer ses horodatages sous Linux

Horodatages de fichiers Linux expliqués avec des exemples

Autorisations et propriété des fichiers Linux expliquées avec des exemples