¿Hay alguna forma en Unix de averiguar quién accedió a cierto archivo en la última semana? Puede ser un usuario o algún script ftp a algún otro lugar. ¿Puedo obtener una lista del nombre de usuario que accedió a cierto archivo? ¿Cómo puedo saber quién está accediendo a un archivo en particular?
Respuesta aceptada:
A menos que tenga implementadas políticas de registro extremadamente inusuales, quién accedió a qué archivo no está registrado (eso sería una gran cantidad de información). Puede averiguar quién inició sesión a qué hora en los registros del sistema; el last
El comando le brinda el historial de inicio de sesión y otros registros como /var/log/auth.log
le dirá cómo se autenticaron los usuarios y desde dónde iniciaron sesión (en qué terminal o en qué host si es de forma remota).
La fecha en la que se leyó un archivo por última vez se denomina hora de acceso, o atime para abreviar. Todos los sistemas de archivos de Unix pueden almacenarlo, pero muchos sistemas no lo registran porque tiene una penalización de rendimiento (generalmente pequeña). ls -ltu /path/to/file
o stat /path/to/file
muestra el tiempo de acceso al archivo.
Si un usuario accedió al archivo y no estaba tratando de ocultar sus pistas, su historial de shell (por ejemplo, ~/.bash_history
) puede tener pistas.
Para averiguar qué o quién tiene un archivo abierto ahora, use lsof /path/to/file
.
Para registrar lo que sucede con un archivo en el futuro, hay algunas formas:
-
Utilice inotifywait.
inotifywait -me access /path/to
imprimirá una línea/path/to/ ACCESS file
cuando alguien leefile
. Esta interfaz no le dirá quién accedió al archivo; puede llamar alsof /path/to/file
tan pronto como aparezca esta línea, pero hay una condición de carrera (el acceso puede haber terminado para cuando lsof se ponga en marcha). -
LoggedFS es un sistema de archivos apilable que proporciona una vista de un árbol del sistema de archivos y puede realizar un registro más elegante de todos los accesos a través de esa vista. Para configurarlo, consulte la sintaxis del archivo de configuración de LoggedFS.
-
Puede usar el subsistema de auditoría de Linux para registrar una gran cantidad de cosas, incluidos los accesos al sistema de archivos. Asegúrese de que
auditd
se inicia el demonio, luego configure lo que desea registrar conauditctl
. Cada operación registrada se registra en/var/log/audit/audit.log
(sobre distribuciones típicas). Para comenzar a ver un archivo en particular:auditctl -w /path/to/file
Si coloca una vigilancia en un directorio, los archivos que contiene y sus subdirectorios también se vigilan recursivamente.