Quais são as diferentes maneiras que uma mensagem pode ser exibida para um shell bash depois que um usuário efetua login?

10

Eu tenho um CentOS 5.7 VPS usando bash como seu shell que exibe uma saudação de marca imediatamente após o login via SSH. Eu tenho tentado modificá-lo, mas não consigo encontrar onde ele está nos lugares habituais. Até agora eu olhei no arquivo motd e verifiquei sshd_config para as configurações do arquivo de banner. Um arquivo de banner não está definido.

Onde mais posso procurar onde a mensagem de login pode estar?

    
por Wesley 22.02.2012 / 23:32

4 respostas

18

Sistemas Unix tradicionais exibem /etc/motd depois que o usuário é autenticado com êxito e antes que o shell do usuário seja invocado. Em sistemas modernos, isso é feito pelo módulo pam_motd PAM, que pode ser configurado em /etc/pam.conf ou /etc/pam.d/* para exibir um arquivo diferente.

O próprio servidor ssh pode ser configurado para imprimir /etc/motd se a opção PrintMotd não estiver desativada em /etc/sshd_config . Também pode imprimir a hora do login anterior se PrintLastLog não estiver desativado.

Outra mensagem tradicional pode dizer se You have new mail ou You have mail . Em sistemas com o PAM, isso é feito pelo módulo pam_mail . Alguns shells podem imprimir uma mensagem sobre o correio disponível.

Depois que o shell do usuário é iniciado, os arquivos de inicialização do usuário podem imprimir mensagens adicionais. Para um login interativo, se o shell de login do usuário for um shell estilo Bourne, procure em /etc/profile , ~/.profile , além de ~/.bash_profile e ~/.bash_login para bash. Para um login interativo em zsh, procure em /etc/zprofile , /etc/zlogin , /etc/zshrc , ~/.zprofile , ~/.zlogin e ~/.zshrc . Para um login interativo em csh, procure em /etc/csh.login e ~/.login .

Se o shell de login do usuário é bash e este é um login não interativo, o bash executa ~/.bashrc (o que é realmente estranho, já que ~/.bashrc é executado para shells interativos somente se o shell não for um shell de login) . Isso pode ser uma fonte de problemas; Recomendo incluir o seguinte snippet no topo de ~/.bashrc para salvar se o shell não for interativo:

if [[ $- != *i* ]]; then return; fi
    
por 23.02.2012 / 02:51
8

Existem alguns:

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

Adicionalmente

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

Você também pode ter que passar por todos os programas que estão sendo chamados por esses scripts, porque algo como fortune poderia armazenar os quips exibidos em /usr/share . Para isolar você pode fazer:

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

No Ubuntu também há arquivo:

/etc/motd.tail
    
por 22.02.2012 / 23:39
2

Os sistemas mais novos armazenam os componentes MOTD em /etc/update-motd.d , de modo que várias macros possam ser executadas para personalizar o motd para que as informações de atualização, os alertas do sistema, etc. sejam exibidas no login.

Adicione sua personalização como outro arquivo com prioridade de 00 a 99

99-footer normalmente carrega /etc/motd.tail se for suficiente alinhavar no final e você não quiser usar nenhum dos itens de macro.

    
por 19.08.2013 / 05:44
1

Você pode procurar em /etc/shell , onde encontrei uma mensagem que estava tentando alterar. Não funciona para comentar com um "#" você só tem que excluir qualquer texto e adicionar o seu próprio. Também espaços e novas linhas aparecerão quando você os colocar no arquivo.

Espero que isso ajude alguém ....

    
por 01.11.2013 / 08:06