¿Puedo registrar la actividad vi?

10

¿Hay algún método para registrar actividades vi? Sospecho que otro usuario está emitiendo comandos yendo al shell dentro del editor vi, aparentemente esos comandos no se registran en el historial.

vnix27
fuente

Respuestas:

6

También puede activar la contabilidad de procesos (s / can / should /!)

Entonces puedes usar:

lastcomm(1)

para ver el comando ejecutar y si se ejecutaron después de una bifurcación, con o sin un ejecutivo.

Combinado con un IDS basado en host, esto debería darle lo que necesita "para que se haga justicia al Rey sobre él".

chiggsy
fuente
+1 para un buen punto sobre contabilidad.
Phil Hollenback
7

¿Cómo estás registrando sus actividades en este momento? Lo más fácil es evitar que lancen proyectiles desde vi.

# vi /home/user/.exrc
set exrc
set shell=/bin/false
# chown root:root /home/user/.exrc
# chmod 644 /home/user/.exrc
# chattr +i /home/user/.exrc

Si está utilizando un shell especial para registrar sus comandos, puede cambiar vi para usar solo ese shell.

Steven
fuente
+1 para una buena forma simple de restringir el acceso vi.
Phil Hollenback
2
pero parece fácil evitarlo: "vim -u / dev / null".
jlliagre
Sí, esto es esencialmente un problema sin solución. En el momento en que alguien obtiene acceso a su sistema a través de un inicio de sesión, puede subvertir la máquina. Lo mejor que puedes hacer es hacerlo realmente difícil.
Phil Hollenback
4

¿Estás hablando de la historia de la cáscara? vi shell mode ( :sh) inicia el shell predeterminado del usuario. Si eso es bash, puede asegurarse de que el registro del historial siempre esté habilitado editando el archivo global / etc / bashrc y agregando:

set HISTFILE=~/.bash_history
shopt -s histappend
PROMPT_COMMAND='history -a'

eso asegurará que cada comando de usuario se registre en un archivo, no se sobrescriba y se actualice cada vez que aparezca el indicador de shell.

Tenga en cuenta que los usuarios pueden anular esto en su personal, ~/.bashrcpor lo que no es una garantía absoluta de que se produzca el registro.

Algunas versiones de vi (como nvi) admiten un modo seguro que deshabilita el acceso de shell, iniciando vi as nvi -S. También puede establecer un alias global /etc/bashrcpara forzar este modo de manera predeterminada.

Tenga en cuenta que, en general, el problema de los usuarios que llegan al shell por medios inesperados es un problema clásico de Unix. No hay forma de desactivar esto por completo, lo mejor que puede hacer es intentar limitar el acceso de forma predeterminada. Un usuario sofisticado (o incluso un usuario que sabe cómo usar google) siempre puede sortear estas restricciones. Por ejemplo, si un usuario no quiere que se registre su historial de shell, siempre podría ejecutar una nueva copia del shell con las opciones que quiera usar.

Aquí hay una excelente reseña de cómo forzar el inicio de sesión en bash y las formas en que se puede evitar.

Finalmente, ¿ha considerado hablar con el usuario para determinar qué está haciendo? El 99% del tiempo la comunicación verbal simple puede aclarar cualquier confusión. Si está registrando la actividad de este usuario porque no confía en ellos, tal vez pueda hablar con ellos sobre sus inquietudes.

Phil Hollenback
fuente