J'ai vu cela se produire lorsque le système n'avait pas été arrêté proprement. En particulier, j'ai vu cela se produire lorsque les données cryptées étaient stockées sur un périphérique USB et que la connexion entre l'hôte et le périphérique USB n'était pas très fiable. Mais je pense que d'autres arrêts non nettoyés pendant que des fichiers sont en cours d'écriture peuvent également être à l'origine de ce problème.
Recherche par inode comme suggéré dans le répondre por Giovanni peut en effet être utilisé pour trouver le fichier problématique. Comme ecryptfs préserve les numéros d'inode du système de fichiers sous-jacent, cette commande peut être utilisée pour trouver à la fois le chemin crypté et non crypté vers le fichier.
La recherche du fichier dans le système de fichiers sous-jacent de cette manière est nettement plus rapide que la recherche dans le système de fichiers ecryptfs. Mes mesures sur un système ont montré un ralentissement d'un facteur 8 entre les deux avec des caches froids et une différence d'un facteur 350 avec des caches chauds.
En raison de cette surcharge, je vous suggère de trouver d'abord le fichier crypté dans le système de fichiers sous-jacent. Par exemple, dans la configuration par défaut d'un système Ubuntu, la commande suivante pourrait être utilisée :
find /home/.ecryptfs -inum 22545087
Cela devrait permettre de trouver le chemin d'accès au fichier crypté, qui comprend le nom du répertoire personnel dans lequel il a été trouvé. Lors de la recherche du nom du fichier non crypté, vous pouvez alors immédiatement limiter la recherche à un seul répertoire personnel :
find /home/username -inum 22545087
Si l'utilisateur a tellement de fichiers que cela est trop lent, vous pouvez tirer parti des numéros d'inode pour consulter un niveau de répertoire à la fois. Par exemple, si le nom du fichier crypté est
/home/.ecryptfs/username/.Private/ECRYPTFS_FNEK_ENCRYPTED.AAAAAA/ECRYPTFS_FNEK_ENCRYPTED.BBBBBB/ECRYPTFS_FNEK_ENCRYPTED.CCCCCC
Vous pouvez d'abord lancer
ls -i /home/.ecryptfs/username/.Private/ECRYPTFS_FNEK_ENCRYPTED.AAAAAA
Vous obtiendrez ainsi le numéro d'inode du répertoire le plus éloigné. Vous pouvez alors rechercher la version non cryptée du nom de ce répertoire :
ls -i /home/username | grep $INODE_NUMBER_FROM_LS
Vous pouvez répéter cette opération pour chaque niveau de la hiérarchie des répertoires afin d'obtenir le chemin d'accès non chiffré sans avoir à utiliser autant de temps CPU que nécessaire pour déchiffrer chaque nom de fichier dans ce répertoire personnel.