Existe-t-il un moyen sous Unix de savoir qui a accédé à certains fichiers au cours de la dernière semaine ? Il peut s'agir d'un utilisateur ou d'un script FTP vers un autre endroit. Puis-je obtenir une liste des noms d'utilisateurs ayant accédé à certains fichiers ? Comment puis-je savoir qui accède à un fichier particulier ? ?
Réponse acceptée :
À moins que vous n'ayez mis en place des politiques de journalisation extrêmement inhabituelles, qui a accédé à quel fichier n'est pas enregistré (ce serait une énorme quantité d'informations). Vous pouvez savoir qui s'est connecté à quelle heure dans les journaux système ; le last
La commande vous donne l'historique de connexion et d'autres journaux tels que /var/log/auth.log
vous dira comment les utilisateurs se sont authentifiés et d'où ils se sont connectés (quel terminal, ou quel hôte si à distance).
La date à laquelle un fichier a été lu pour la dernière fois est appelée son heure d'accès, ou atime en abrégé. Tous les systèmes de fichiers Unix peuvent le stocker, mais de nombreux systèmes ne l'enregistrent pas, car il a une pénalité de performance (généralement faible). ls -ltu /path/to/file
ou stat /path/to/file
affiche le temps d'accès au fichier.
Si un utilisateur a accédé au fichier et n'essayait pas de cacher ses traces, son historique du shell (par exemple, ~/.bash_history
) peut avoir des indices.
Pour savoir quoi ou qui a un fichier ouvert maintenant, utilisez lsof /path/to/file
.
Pour enregistrer ce qu'il advient d'un fichier à l'avenir, il existe plusieurs façons :
-
Utilisez inotifywait.
inotifywait -me access /path/to
imprimera une ligne/path/to/ ACCESS file
quand quelqu'un litfile
. Cette interface ne vous dira pas qui a accédé au fichier ; vous pouvez appelerlsof /path/to/file
dès que cette ligne apparaît, mais il y a une condition de concurrence (l'accès peut être terminé au moment où lsof démarre). -
LoggedFS est un système de fichiers empilable qui fournit une vue d'une arborescence de système de fichiers et peut effectuer une journalisation plus sophistiquée de tous les accès via cette vue. Pour le configurer, consultez Syntaxe du fichier de configuration LoggedFS.
-
Vous pouvez utiliser le sous-système d'audit de Linux pour enregistrer un grand nombre de choses, y compris les accès au système de fichiers. Assurez-vous que le
auditd
démon est démarré, puis configurez ce que vous voulez enregistrer avecauditctl
. Chaque opération journalisée est enregistrée dans/var/log/audit/audit.log
(sur des distributions typiques). Pour commencer à regarder un fichier particulier :auditctl -w /path/to/file
Si vous placez une surveillance sur un répertoire, les fichiers qu'il contient et ses sous-répertoires sont également surveillés de manière récursive.