3 votos

Claro terminal y evitar la restauración

Hay algunos datos confidenciales (número de tarjeta de crédito y tal) que guardo en mi disco duro cifrado. Yo uso un script para descifrar los datos y mostrarlos en la ventana de terminal. Cuando he terminado, me gustaría que la secuencia de comandos para desactivar el terminal, por lo que los datos sensibles no pueden ser vistos (incluso si alguien obtiene acceso a mi ordenador).

He leído aquí que +k borra la salida de la terminal. Para implementar esto en un script, he utilizado AppleScript como se sugiere en la aceptó contestar a esta pregunta:

/usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down'

Finalmente, mi script se cierra la ventana de terminal con

killall Terminal

El problema: si dejo la ventana de terminal con el sensible salida abierta durante unos 30 segundos o más antes del cierre, si, entonces la próxima vez que abra el terminal, restaura los datos sensibles (el texto [restaurada] se muestra a continuación). Si los datos se muestran inicialmente por menos tiempo, no es restaurado.

¿Cómo se puede borrar la ventana de terminal desde dentro de un script, y prevenir la Terminal desde la restauración de la borran los datos?

Estoy ejecutando OS X 10.10.3.

2voto

ryebread Puntos 716

Solución Final:

Retire el Terminal de guarda del estado, que se encuentra en:

~/Library/Saved Application State/com.apple.Terminal.savedState/*

A continuación, asegúrese de que la carpeta de sólo lectura por lo que no puede ser escrito.


Usted puede utilizar el clear comando para borrar su ventana de terminal desde un script. Como se ha señalado en este otro hilo, los siguientes comandos en secuencia para borrar el búfer actual, entonces el desplazamiento hacia atrás de búfer:

clear && printf '\e[3J'

Por favor nota:
( clear Comando busca la secuencia adecuada para la limpieza de la pantalla de la terminal actual, pero el "borrar hacia atrás" secuencia de escape es la costumbre y no debe ser modificable. Si pones esto en un script de shell que usted no sabe, por cierto solo se puede ejecutar con el Terminal, se debe verificar que $TERM_APPLICATION es Apple_Terminal antes de enviar.)


Alternativa 1

Apague el Terminal.ventana de la aplicación la funcionalidad de restauración:

defaults write com.apple.Terminal NSQuitAlwaysKeepsWindows -bool false

Alternativa 2

También puede almacenar información sensible en la Secure Notes sección en el Acceso a llaves de utilidad.

enter image description here

1voto

Gus Puntos 111

Después de leer las otras respuestas y buscando en mí mismo y he visto algunos de archivo comportamiento del sistema, lo que implica una solución muy simple. El programa de terminal server almacena los datos en

~/Library/Saved Application State/com.apple.Terminal.savedState/

como se señaló anteriormente. Cuando yo salga de la totalidad de la Terminal de la aplicación (limpiamente) toda la carpeta se elimina. La razón por la que el OP es obtener los datos restaurados se porque se bloquea la aplicación terminal con killall. He observado que esta abriendo el buscador de la Saved Application State carpeta de inicio y dejar el terminal. El lado negativo de esto es que usted tiene que cerrar TODAS las ventanas de la terminal, pero de esta manera todos los salvos estado parece estar limpio (baring disco forense de curso)

No parece ser un archivo en este directorio para cada terminal abierto de la ventana (pero no cada ficha!) además de los datos.de datos y windows.plist y window_1.data que presumiblemente representa el programa de terminal en sí. El per-terminal de archivos desaparecen en el cierre de la ventana, sin embargo los datos.archivo de datos es la que crece a medida que los comandos emitidos y por lo tanto presumiblemente almacenes de la memoria intermedia para retroceder páginas. No encogerse en el cierre de la ventana de terminal, lo que implica que se mantiene scrollback de datos. El data.data archivo, sin embargo, se encogen cuando la siguiente ventana de terminal se abrió. También reduce drásticamente cuando otra ventana de terminal se actualiza (pulsando "intro", por ejemplo). Así pues, parece que la siguiente rutina es (probablemente) limpie la scrollback de datos completo:

  1. Limpiamente cerrar la ventana con los datos sensibles (por ejemplo, punto rojo, command + w)
  2. Abrir una nueva ventana de terminal O causa de desplazamiento en otra ventana de terminal que ya está abierto.

o

  1. Cerca de la totalidad de la terminal de la aplicación limpiamente (Comando + q, etc)

También vale la pena señalar que el data.data archivo no es un archivo de texto. Es un archivo binario que va a requerir el esfuerzo de interpretar. Mi conjetura es que los datos se comprimen en alguna manera. Una simple cat de que el archivo no revela nada legible. Así que para que estos archivos a una vulnerabilidad, parece que ambos deben cumplirse las siguientes condiciones:

  1. La Terminal ha muerto y NSQuitAlwaysKeepsWindows es cierto (ver respuesta), o el terminal de la ventana estaba cerrada y no otra ventana ha sido abierta o actualizado.
  2. El atacante es lo suficientemente sofisticados como para saber lo suficiente como para buscar y saber cómo descifrar los datos.archivo de datos.

Por FAVOR NOTA: el anterior se basa enteramente en la observación de cómo los archivos que aparecen/desaparecen y cómo sus tamaños de cambio. Por supuesto, es todavía posible que algunos parcial se conserva la información de si el mantenimiento de la data.data archivo es descuidado. Sin embargo, estas observaciones parecen lo suficientemente bueno para mí. Decide por ti mismo si es lo suficientemente bueno para usted.

Estas observaciones provienen de OS X 10.9.5 y Terminal de la Versión 2.4 (326), por favor verifique el comportamiento descrito anteriormente, si usted está usando alguna otra versión antes de confiar en este consejo. Cualquiera o todos de que esto podría cambiar con las nuevas versiones del terminal o Mac OSX.

-1voto

les Puntos 363

intente history -c y command + k

lo siento

sólo tienes que enviar la salida a /dev/null

Si usted necesita para ver o almacenar la salida, a continuación, redirigir a un archivo para su posterior uso your_commands > path_to_filename/filename_where_output_is_stored

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X