Ocultar el historial de comandos de otros usuarios en un servidor Linux

Ocultar el historial de comandos de otros usuarios en un servidor Linux

Cuando inicio sesión a través de ssh en un servidor Linux (Ubuntu), noto que todos los comandos bash ejecutados por otros usuarios en el servidor se guardan en el historial de comandos. ¿Existe alguna forma que me permita ocultar los comandos que escribí en la línea de comandos a otros usuarios del servidor?

Respuesta1

Hay muchas formas de ocultar el historial de comandos, pero es una mala idea desactivarlo por completo, ya que es muy útil. Aquí hay tres buenas maneras de apagarlo temporalmente.

  1. La solución más rápida: Tipounset HISTFILE

    Eso evitará que todos los comandos ejecutados en la sesión de inicio de sesión actual se guarden en el archivo .bash_history cuando cierre la sesión. Tenga en cuenta que HISTFILE se restablecerá la próxima vez que inicie sesión, por lo que el historial se guardará como de costumbre. Además, tenga en cuenta que esto eliminatodocomandos de la sesión, incluidos los que se ejecutaron antes de escribir unset HISTFILE, que pueden no ser los que desea. Otra desventaja es que no puedes estar seguro de haberlo hecho bien hasta que cierres la sesión, ya que bash aún te permitirá usar la flecha hacia arriba para ver los comandos anteriores.

  2. Mejor solución: escriba un espacio antes de un comando

    Pruébelo y luego presione la flecha hacia arriba para ver si se agregó a su historial. Algunos sitios ya lo tienen configurado para que dichos comandos no se guarden. Si no funciona, agregue la línea export HISTCONTROL=ignorebotha su archivo .bashrc. Cuando inicie sesión en el futuro, los comandos que comiencen con un espacio se olvidarán inmediatamente.

  3. más fácil de recordar: Tiposh

    Eso iniciará una subcapa con la shell Bourne original. Cualquier comando escrito en él (hasta que usted exit) no se guardará en su historial. Cualquiera que mire su archivo de historial podrá ver que ejecutó sh (lo cual es sospechoso), pero no verá lo que ejecutó después de eso.

Hay muchas otras formas de hacer esto. Incluso puedes decirle a bash qué comandos nunca recordar (HISTIGNORE). Consulte la página de manual de bash(1) y busque HIST para ver muchas posibilidades.

Respuesta2

El historial de la línea de comando para bashlas sesiones de shell se almacena en el ~/.bash_historyarchivo. Si este archivo no existe, se crea sin permisos de lectura para otros usuarios.

Puede cambiar la cantidad de comandos que bashse guardan en este archivo configurando la HISTFILESIZEvariable de entorno. Establecerlo en cero truncará el archivo histórico a tamaño cero. El valor predeterminado es 500. Desarmar la variable HISTFILE( unset HISTFILE) también evitará que se almacenen comandos en el archivo histórico.

Sin embargo, la configuración actual del servidor que estás describiendo (en los comentarios) es simplemente incorrecta.

No debería haber ningún motivo para permitir que varios usuarios inicien sesión y utilicen un shell interactivo en la rootcuenta. ¡Considere utilizar sudoen su lugar varias cuentas de usuario privadas!

El historial de comandos de root, ya sea para sesiones interactivas o cuando se usa sudo, es extremadamente valioso.especialmentesi tiene varios usuarios con rootacceso al sistema.

Tu equipo querrá saberexactamenterootEs mejor investigar y solucionar lo que el usuario ha estado haciendo desde cualquier configuración errónea u otro percance realizado por este usuario. Con un historial de línea de comando, es mucho más fácil encontrar por qué algo salió mal. La sudoutilidad además registra cada invocación a la función syslog por este motivo, con marcas de tiempo y con una línea de comando completa, y con el nombre de usuario del usuario que ejecuta sudo.

EDITAR: Recientemente comenzamos a tener problemas con una red de fibra en un grupo de máquinas Linux en el trabajo. Resultó que algunos controladores fueron reemplazados con la versión incorrecta cuando un usuario tonto con sudoacceso realizó una actualización de paquete descuidada. Pudimos encontrar esto mirando los registros del sistema y las sudomarcas de tiempo que contienen. ¡El "usuario tonto" resultó ser nadie más que yo!

Respuesta3

Emita el siguiente comando después de iniciar sesión:

HISTFILE=

Esto bloqueará el registro de cualquier comando posterior en el archivo de historial.

información relacionada