4 votes

Pourquoi la valeur de l'inode du fichier fantôme change-t-elle ?

J'ai créé un lien dur pour le fichier shadow. Pour supprimer le mot de passe de l'utilisateur, j'ai ouvert le fichier fantôme dans l'éditeur vi et supprimé le mot de passe crypté, puis j'ai enregistré. La valeur inode du fichier shadow a été modifiée. Puis j'ai mis à jour le mot de passe de l'utilisateur et de nouveau la valeur inode du fichier fantôme a changé. Pourquoi l'inode du fichier fantôme change-t-il lorsqu'il est édité/mis à jour ?

2voto

glglgl Points 35668

VI enregistre les données dans un nouveau fichier, puis supprime les liens ou renomme l'ancienne entrée de répertoire. Le lien dur est lié à l'ancien.

C'est l'une des deux façons de garantir la cohérence des données en cas d'échec de la sauvegarde.

L'autre moyen serait de copier l'ancien fichier et de l'écraser. L'ancienne copie aurait alors un inum différent, et le nouveau fichier sauvegardé aurait le même inum qu'avant.

0voto

Julie in Austin Points 575

Le code qui gère les écritures de fichiers crée une copie du fichier entier, tel qu'il devrait exister sur le disque, avant que le fichier ne soit écrit. Une fois que le fichier a été écrit sur le disque et purgé, il est renommé au nom approprié (/etc/shadow ou /etc/gshadow, pour les fichiers d'ombre de groupe).

Le problème n'est pas seulement la cohérence des données. Il existe un petit nombre de fichiers qui doivent être présents pour que le système soit utilisable, et les fichiers de sécurité en font partie. L'objectif est d'éviter une situation dans laquelle le système peut se planter, ou la commande correspondante peut être suspendue (la touche Ctrl-Z ou un SIGSTOP ...) et les fichiers sont dans un état non sécurisé. "Insecure" peut aussi inclure "n'existe pas" -- le renommage non-atomique d'un fichier peut laisser un intervalle de temps où le fichier /etc/shadow n'existe pas du tout.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X