GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Auf welche verschiedenen Arten kann eine Nachricht in einer Bash-Shell angezeigt werden, nachdem sich ein Benutzer angemeldet hat?

Herkömmliche Unix-Systeme zeigen /etc/motd an nachdem der Benutzer erfolgreich authentifiziert wurde und bevor die Shell des Benutzers aufgerufen wird. Auf modernen Systemen wird dies durch die pam_motd erledigt PAM-Modul, das in /etc/pam.conf konfiguriert werden kann oder /etc/pam.d/* um eine andere Datei anzuzeigen.

Der ssh-Server selbst kann so konfiguriert werden, dass er /etc/motd ausgibt wenn der PrintMotd Option ist in /etc/sshd_config nicht ausgeschaltet . Es kann auch die Zeit der vorherigen Anmeldung drucken, wenn PrintLastLog ist nicht ausgeschaltet.

Eine andere herkömmliche Nachricht könnte Ihnen sagen, ob You have new mail oder You have mail . Auf Systemen mit PAM geschieht dies durch den pam_mail Modul. Einige Shells geben möglicherweise eine Nachricht über verfügbare Mail aus.

Nachdem die Shell des Benutzers gestartet wurde, drucken die Startdateien des Benutzers möglicherweise zusätzliche Meldungen. Wenn die Anmelde-Shell des Benutzers für eine interaktive Anmeldung eine Bourne-Shell ist, sehen Sie in /etc/profile nach , ~/.profile , plus ~/.bash_profile und ~/.bash_login für bash. Eine interaktive Anmeldung bei zsh finden Sie unter /etc/zprofile , /etc/zlogin , /etc/zshrc , ~/.zprofile , ~/.zlogin und ~/.zshrc . Eine interaktive Anmeldung bei csh finden Sie unter /etc/csh.login und ~/.login .

Wenn die Login-Shell des Benutzers bash ist und dies eine nicht interaktive Anmeldung ist, dann führt bash ~/.bashrc aus (was wirklich seltsam ist, da ~/.bashrc wird für interaktive Shells nur ausgeführt, wenn die Shell keine Login-Shell ist). Dies kann eine Quelle für Probleme sein; Ich empfehle, das folgende Snippet oben in ~/.bashrc einzufügen aussteigen, wenn die Shell nicht interaktiv ist:

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

Es gibt einige:

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

Zusätzlich

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

Möglicherweise müssen Sie auch jedes Programm durchlaufen, das von diesen Skripten aufgerufen wird, weil etwas wie fortune könnte die Witze speichern, die es in /usr/share anzeigt . Um es zu isolieren, können Sie Folgendes tun:

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

Unter Ubuntu gibt es auch die Datei:

/etc/motd.tail

Neuere Systeme speichern die MOTD-Komponenten in /etc/update-motd.d damit verschiedene Makros ausgeführt werden können, um das motd so anzupassen, dass Aktualisierungsinformationen, Systemwarnungen usw. beim Anmelden angezeigt werden.

Fügen Sie Ihre Anpassung als weitere Datei mit Priorität ab 00 hinzu bis 99

99-footer lädt normalerweise /etc/motd.tail wenn es ausreicht, es an das Ende zu heften und Sie keines der Makroelemente verwenden möchten.


Linux
  1. Linux – Was sind die verschiedenen Möglichkeiten zum Festlegen von Dateiberechtigungen usw. unter Gnu/Linux?

  2. Was sind die Worttrennzeichen von Readline?

  3. Welches sind die speziellen Parameter/Variablen der (Bash-)Shell?

  4. Wie kann ich Bash als Login-Shell verwenden, wenn der Sysadmin mich nicht ändern lässt?

  5. CentOS / RHEL :So ändern Sie die Anmelde-Shell des Benutzers

Was ist die Shell unter Linux?

Anpassen der Bash-Shell

Was ist der Unterschied zwischen Login- und Non-Login-Shell

Was ist der *nix-Befehl, um die Standard-Login-Shell eines Benutzers anzuzeigen

Was ist der Unterschied zwischen der Ausführung eines Bash-Skripts und dessen Beschaffung?

Was sind die verschiedenen Möglichkeiten zum Festlegen von Dateiberechtigungen usw. unter gnu/linux