GNU/Linux >> Linux Esercitazione >  >> Linux

Quali sono i diversi modi in cui un messaggio può essere visualizzato su una shell bash dopo che un utente ha effettuato l'accesso?

I sistemi unix tradizionali visualizzano /etc/motd dopo che l'utente è stato autenticato con successo e prima che la shell dell'utente venga richiamata. Sui sistemi moderni, questo viene fatto dal pam_motd Modulo PAM, che può essere configurato in /etc/pam.conf o /etc/pam.d/* per visualizzare un file diverso.

Il server ssh stesso può essere configurato per stampare /etc/motd se il PrintMotd l'opzione non è disattivata in /etc/sshd_config . Potrebbe anche stampare l'ora del login precedente se PrintLastLog non è disattivato.

Un altro messaggio tradizionale potrebbe dirti se quel You have new mail o You have mail . Sui sistemi con PAM, questo viene fatto dal pam_mail modulo. Alcune shell potrebbero stampare un messaggio sulla posta disponibile.

Dopo l'avvio della shell dell'utente, i file di avvio dell'utente potrebbero stampare messaggi aggiuntivi. Per un login interattivo, se la shell di login dell'utente è una shell in stile Bourne, guarda in /etc/profile , ~/.profile , più ~/.bash_profile e ~/.bash_login per bash. Per un accesso interattivo a zsh, cerca in /etc/zprofile , /etc/zlogin , /etc/zshrc , ~/.zprofile , ~/.zlogin e ~/.zshrc . Per un accesso interattivo a csh, cerca in /etc/csh.login e ~/.login .

Se la shell di login dell'utente è bash e questo è un login non interattivo, allora bash esegue ~/.bashrc (il che è davvero strano, dal momento che ~/.bashrc viene eseguito per le shell interattive solo se la shell non è una shell di login). Questo può essere fonte di guai; Consiglio di includere il seguente frammento in cima a ~/.bashrc per eseguire il salvataggio se la shell non è interattiva:

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

Ce ne sono alcuni:

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

Inoltre

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

Potresti anche dover passare attraverso ogni programma che viene chiamato da quegli script perché qualcosa come fortune potrebbe memorizzare le battute visualizzate in /usr/share . Per isolarlo puoi fare:

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

Su Ubuntu c'è anche file:

/etc/motd.tail

I sistemi più recenti memorizzano i componenti MOTD in /etc/update-motd.d in modo che possano essere eseguite varie macro per personalizzare il motd per avere informazioni di aggiornamento, avvisi di sistema, ecc. mostrati all'accesso.

Aggiungi la tua personalizzazione come un altro file con priorità da 00 a 99

99-footer di solito carica /etc/motd.tail se attaccarlo alla fine è sufficiente e non vuoi usare nessuno dei macro elementi.


Linux
  1. Linux:quali sono i diversi modi per impostare i permessi dei file ecc. su Gnu/linux?

  2. Quali sono i separatori di parole Readline?

  3. Quali sono i parametri/variabili speciali della shell (bash)?

  4. Come posso usare Bash come shell di accesso quando l'amministratore di sistema si rifiuta di farmi cambiare?

  5. Quali sono i diversi tipi di shell in Linux?

Che cos'è la shell in Linux?

Personalizzazione della shell Bash

Qual è la differenza tra Login e Non-Login Shell

Qual è il totale nella primissima riga dopo ls -l?

Qual è la differenza tra &> e >&in bash?

Quali sono i diversi modi per impostare i permessi dei file ecc. su gnu/linux