¿En qué situaciones un usuario no dejaría que el shell registrara su comando en el historial?

18

Si añado export HISTCONTROL=ignorespaceen .bashrcbash no grabará ningún comando que tienen un espacio en blanco delante de ellos en la historia. Pero no entiendo en qué situaciones será útil. ¿Alguien puede dar algunos ejemplos?

acgtyrant
fuente

Respuestas:

32

Si sus comandos contienen contraseñas u otra información confidencial

Ulrich Dangel
fuente
44
@acgtyrant, entonces nunca ingresó un comando con una contraseña. La idea es que si proporciona una contraseña en la línea de comandos, simplemente ponga un espacio antes del comando y no se grabará en elHISTFILE
Ulrich Dangel
3
Los comandos mysql pueden aceptar la contraseña del usuario con el que está conectado a la base de datos, hay demasiados para enumerar aquí. El punto que hizo @Ulrich Dangel es perfecto. Si está escribiendo comandos con contraseñas, no los deje en el historial.
slm
55
También agregaré que cuando usted y el administrador a menudo no quieren el historial porque si un atacante ingresa al sistema, le está dejando un rastro de dónde están las cosas en la caja y qué tipos de comandos normalmente se ejecutan en la caja.
slm
1
Si no tiene ningún comando con información confidencial, entonces no es el público objetivo para esa función. No todas las funciones de un programa son utilizadas por todos los usuarios. (Esa es una de las razones por las cuales los programas tienen un "deslizamiento de características": todos usan una docena de características, pero una docena diferente, y se preguntan para qué son todos los demás inútiles.)
Kaz
1
Tenga en cuenta que los argumentos de la línea de comandos a menudo son visibles en pso al mirar hacia adentro /proc. Algunos sistemas también hacen que el entorno sea visible para otros usuarios. Un archivo de modo 0700 en un tmpfs, OTOH, no tiene estos problemas.
derobert
26

Otro uso es para comandos que no desea repetir accidentalmente, como rm -rf *. Hago un uso extenso del historial y ocasionalmente golpeo Enteraccidentalmente cuando el comando que he recuperado del historial no es el que estaba buscando. De acuerdo, la solución real es leer siempre los comandos cuidadosamente antes de ejecutarlos. Pero siendo un poco torpe, prefiero mantener también comandos particularmente destructivos fuera de mi historia como precaución adicional.

depquid
fuente
14
Me gustaría añadir que he encontrado que es muy conveniente para ignorar más algunos comandos peligrosas aunque no me olvido de incluir un espacio: HISTIGNORE=" *:rm -f*:rm -r*:*--force*". Esto evita rm -fy rm -rse guarda en la historia, así como cualquier cosa que contenga --force.
Petr Pudlák
Esta es la / una solución real. No deje cuchillos alrededor, diciendo que la verdadera solución es no meterse con ellos. Como dice el viejo proverbio "no puedes desangrar en el río", lo que significa que no debes limpiar el río, sino dejar de tirar basura en él.
ctrl-alt-delor
6

Un ex compañero de trabajo mío hizo esto con la mayoría cdy los lscomandos, para registrar solo los comandos "útiles".

Jan Fabry
fuente
3
Casi nunca corro nethack en el trabajo sin hacer esto ... (o superior, o el hombre ...)
lotsoffreetime
En realidad, alguien puede añadir export HISTCONTROL=ingoredupsen el .bashrcque contar fiesta no almacenar duplicados de modo historia hacen más claras. Puedes leer este artículo
acgtyrant
2

Privacidad de datos. En el momento en que la policía derriba su puerta, es posible que no desee que encuentren residuos de

  • de donde sacas el último pron ^ Wwarez de
  • qué películas recientemente arrancaste y alimentaste a un torrent
  • contraseñas transmitidas mediante argumentos a programas de cifrado / descifrado

En serio, es probablemente el equivalente a una configuración de privacidad estricta en su navegador, evitando que registre el historial de navegación.

Jens
fuente
0

Si controla la versión .bash_history , es una forma útil de marcar ciertos comandos como "especiales". Combinado con history-search- * , es una forma de presionar simplemente Space+ m+ Up+ Enterpara ejecutar make --directory ~/dev/tilde cleany Space+ e+ Up+ Enterpara ejecutar editor ~/.bash_history, que utilizo para el mantenimiento del archivo de historial de Bash.

l0b0
fuente