¿Es posible enviar secuencias de escape de código de color antes de iniciar session?

Estoy intentando colorear la console y estoy teniendo éxito con lo siguiente en .bash_profile de root:

 echo -en "\e]P7000000" echo -en "\e]P0F0F0F0" clear 

El problema es que, obviamente, esto solo se iniciará la primera vez que el usuario root mingetty session. ¿Hay alguna manera de hacer que mingetty establezca automáticamente los colors de la console? Las soluciones propuestas deberían funcionar con RHEL6 y RHEL7 (es decir, systemd) ya que eso es lo que la mayoría de mis sistemas son. Tenga en count que se trata de colorear la console normal y no un emulador de terminal o SSH (el anterior no es relevante y estoy bien, ya que este último se considera un problema de configuration de usuario).

Puede poner caracteres de escape literales en /etc/issue como se sugiere en un comentario (Red Hat hace esto, a veces). En una testing rápida, eso funciona, pero solo colorea el text . El background está sin color. En vi, el text puede parecerse

 ^[]P7000000^[]P0F0F0F0\S Kernel \r on an \m 

y el resultado así:

captura de pantalla de la ventana de la consola CentOS 7

Si borra la pantalla, los colors ocupan la window, por ejemplo,

 ^[]P7000000^[]P0F0F0F0^[[2J\S Kernel \r on an \m 

donde ^[ es el carácter de escape ASCII, insertado en vi usando el control V seguido del carácter de escape.

La modificación de /etc/issue es relativamente segura, siempre y cuando puedas ingresar a la máquina para repararla cuando te equivocas. mingetty imprime ese file antes del inicio de session; ssh no va allí.

Sin embargo, es posible que tengas la tentación de modificar /etc/motd de la misma manera (después de todo, eso también está impreso). Pero eso introduce un problema. En su secuencia de commands, una vez que sustituye \e por un carácter de escape ASCII literal

 echo -en "\e]P7000000" echo -en "\e]P0F0F0F0" 

obtendrías

escape ]P7000000
escape ]P0F0F0F0

El estándar para secuencias de escape (ECMA-48) dice que escape ] comienza un command del sistema operativo y que terminará con un terminador de cadena . No hay ninguno en la implementación de la console Linux. Puede get lockings de terminal interesantes (desconcertantes) para que no se conecten con ssh cuando intente imprimir /etc/motd con esas secuencias de escape finalizadas incorrectamente utilizando xterm . Hay una solución alternativa (para xterm, al less) en el recurso brokenLinuxOSC .

Otras lecturas:

  • mingetty – getty mínimo para consoles
  • problema – post de prelogin y file de identificación
  • motd – post del día
  • console_codes – Secuencias de control y escape de la console Linux
  • ECMA-48: Funciones de control para juegos de caracteres codificados