GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuáles son las diferentes formas en que se puede mostrar un mensaje en un shell bash después de que un usuario inicia sesión?

Los sistemas Unix tradicionales muestran /etc/motd después de que el usuario se haya autenticado correctamente y antes de que se invoque el shell del usuario. En los sistemas modernos, esto lo hace el pam_motd Módulo PAM, que se puede configurar en /etc/pam.conf o /etc/pam.d/* para mostrar un archivo diferente.

El propio servidor ssh puede estar configurado para imprimir /etc/motd si el PrintMotd la opción no está desactivada en /etc/sshd_config . También puede imprimir la hora del inicio de sesión anterior si PrintLastLog no está apagado.

Otro mensaje tradicional podría decirle si ese You have new mail o You have mail . En sistemas con PAM, esto lo hace el pam_mail módulo. Algunos shells pueden imprimir un mensaje sobre el correo disponible.

Una vez que se inicia el shell del usuario, los archivos de inicio del usuario pueden imprimir mensajes adicionales. Para un inicio de sesión interactivo, si el shell de inicio de sesión del usuario es un shell de estilo Bourne, busque en /etc/profile , ~/.profile , más ~/.bash_profile y ~/.bash_login para bash. Para un inicio de sesión interactivo en zsh, busque en /etc/zprofile , /etc/zlogin , /etc/zshrc , ~/.zprofile , ~/.zlogin y ~/.zshrc . Para un inicio de sesión interactivo en csh, busque en /etc/csh.login y ~/.login .

Si el shell de inicio de sesión del usuario es bash y este es un inicio de sesión no interactivo, entonces bash ejecuta ~/.bashrc (lo cual es realmente extraño, ya que ~/.bashrc se ejecuta para shells interactivos solo si el shell no es un shell de inicio de sesión). Esto puede ser una fuente de problemas; Recomiendo incluir el siguiente fragmento en la parte superior de ~/.bashrc para rescatar si el shell no es interactivo:

if [[ $- != *i* ]]; then return; fi

Hay algunos:

/etc/motd
/etc/issue
/etc/profile - Could echo the message
/etc/profile.d/* - Would be called from /etc/profile

Además

/etc/bash_bashrc
/etc/.bashrc
/etc/bashrc
$HOME/.profile
$HOME/.bashrc

Es posible que también deba revisar todos los programas que se llaman desde esos scripts porque algo como fortune podría estar almacenando las bromas que está mostrando en /usr/share . Para aislarlo puedes hacer:

. /etc/profile
. /etc/bash.bashrc
. $HOME/.profile
. $HOME/.bashrc

En Ubuntu también hay un archivo:

/etc/motd.tail

Los sistemas más nuevos almacenan los componentes MOTD en /etc/update-motd.d para que se puedan ejecutar varias macros para personalizar el motd para que se muestre información actualizada, alertas del sistema, etc. al iniciar sesión.

Agrega tu personalización como otro archivo con prioridad desde 00 a 99

99-footer normalmente carga /etc/motd.tail si con tachuelas en el extremo es suficiente y no desea utilizar ninguno de los elementos de macro.


Linux
  1. Linux:¿cuáles son las diferentes formas de establecer permisos de archivos, etc. en Gnu/linux?

  2. ¿Qué son los separadores de palabras de Readline?

  3. ¿Cuáles son los parámetros/variables especiales de Shell (bash)?

  4. ¿Cómo puedo usar Bash como shell de inicio de sesión cuando el administrador del sistema se niega a permitirme cambiarlo?

  5. ¿Cuáles son los diferentes tipos de shells en Linux?

¿Qué es el Shell en Linux?

¿Cuál es la diferencia entre Shell de inicio de sesión y sin inicio de sesión?

¿Cuáles son las desventajas de las colas de mensajes de Linux?

Shell Script, lea en la misma línea después de hacer eco de un mensaje

¿Cuál es la diferencia entre ejecutar un script Bash y obtenerlo?

¿Por qué el usuario 'bin' necesita un shell de inicio de sesión?