¿Cómo estás registrando sus actividades en este momento? Lo más fácil es bloquearlos para que no 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á usando un shell especial para registrar sus comandos, puede cambiar vi para usar solo ese shell.
También puede activar la contabilidad de procesos ( s/can/should/ !)
A continuación, puede utilizar:
lastcomm(1)
para ver la ejecución del comando y si se ejecutaron después de una bifurcación, con o sin un exec.
Combinado con un IDS basado en host, esto debería brindarle lo que necesita "para que se haga justicia sobre él".
¿Estás hablando de la historia de Shell? modo shell vi (:sh
) inicia el shell predeterminado del usuario. Si es bash, puede asegurarse de que el registro del historial siempre esté habilitado editando el /etc/bashrc global y agregando:
set HISTFILE=~/.bash_history
shopt -s histappend
PROMPT_COMMAND='history -a'
eso garantizará 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 ~/.bashrc
personal por lo que esto no es una garantía absoluta de que se realizará el registro.
Algunas versiones de vi (como nvi) admiten un modo seguro que deshabilita el acceso de shell, iniciando vi como nvi -S
. Podría establecer un alias global en /etc/bashrc
para forzar este modo por defecto también.
Tenga en cuenta que, en general, el problema de que los usuarios accedan al shell por medios inesperados es un problema clásico de Unix. No hay forma de deshabilitar 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 eludir estas restricciones. Por ejemplo, si un usuario no quiere que se registre su historial de shell, siempre puede ejecutar una nueva copia del shell con las opciones que quiera usar.
Aquí hay una excelente descripción de cómo forzar el inicio de sesión en bash y las formas en que se puede eludir el registro.
Finalmente, ¿ha considerado simplemente hablar con el usuario para determinar qué está haciendo? El 99% de las veces, la simple comunicación verbal puede aclarar cualquier confusión. Si está registrando la actividad de este usuario porque no confía en él, tal vez pueda hablar con él sobre sus inquietudes.